- ベストアンサー
エクセル2007 を利用しています
エクセル2007 を利用しています H210116のように入力されたものが2000個近くあります これを20100116と西暦表示に変換したいのですが うまくいきません データの中には S631201 T150330のように 昭和 大正もあります どうぞ 教えてください
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんな方法もあります。ほぼ、#2さんと発想は同じです。 書式のユーザー定義で、 「yyyymmdd」として、 A1に「H210116」 なら、B1 の数式は、 =(LEFT(A1,1)&TEXT(MID(A1,2,6),"##!/##!/##"))*1 とします。
その他の回答 (5)
- ogawa_sora
- ベストアンサー率36% (468/1280)
今日は。 最初に。 H210116 ←このデーターの形式は日付、文字列どちらですか? 普通の文字列でしたら、シリアル値が入っていないので、諦めて全デー ター入力し直しです。 ただ、文字列でも「20090116」と入力されていれば、ウイザードか関数 式で文字列の数字をシリアル値に変換出来ましたが。 日付形式であれば 日付の入っている列を全選択 ↓ 選択範囲上でマウス右クリック ↓ セルの書式設定 ↓ 「表示形式」タブで「日付」を選択 ↓ 「カレンダーの種類」で「西暦」を選択 ↓ 上の「種類」で「2001/3/14」を選択 ↓ 「OK」です これで選択範囲のデーター全てが一気に変わります 「/」を入れないで表示させるのであれば。 「セルの書式設定」 ↓ 「ユーザー定義」 ↓ 「種類」の所に「yyyymmdd」と入力して「OK」です
お礼
文字列にて入力でした みなさのお陰です ありがとうございました
- avanzato
- ベストアンサー率54% (52/95)
#1ですがもう一つ別の方法も載せておきます。 =DATEVALUE(LEFT(A1,3)&"/"&MID(A1,4,2)&"/"&RIGHT(A1,2)) この数式の場合帰ってくる値は「日付」になる為、表示方法はセルの書式設定で自由に変えることが可能になります。 例えばユーザー定義で「yyyymmdd」ならば今回の質問と同じ書式になります。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 色々方法はあるかと思いますが・・・ 一例です。 ↓の画像のようにとりあえず、明治~平成の元年より1年前の西暦の表を作成しておきます。 そして、A列のデータをB列にシリアル値で表示させ、セルの書式設定の表示形式から ユーザー定義で yyyymmdd としておきます。 B2セルに =IF(A2="","",DATE(VLOOKUP(LEFT(A2,1),$D$1:$E$4,2,0)+RIGHT(LEFT(A2,3),2),LEFT(RIGHT(A2,4),2),RIGHT(A2,2))) という数式を入れ、オートフィルで下へコピーしています。 余計なお世話かもしれませんが、 質問内の H210116 は 20090116 になってしまいました。 (たぶん間違いないと思います) 以上、参考になれば幸いですが 他に良い方法があれば読み流してくださいね。m(__)m
お礼
お世話になりました ありがとうございます
式 =(LEFT(A1,3)&"-"&TEXT(RIGHT(A1,4),"00-00"))+0 書式 yyyymmdd
お礼
この発想が経験者なのでしょうね ありがとうございました
- avanzato
- ベストアンサー率54% (52/95)
お礼
お世話になりました シンプルで目的通りでした ありがとうございした