人に聞けない痔の悩み、これでスッキリ >>

いつもお世話になっております。
excel2010にて、次のような数列を和暦+月日に変換したいと考えています。

例)3150927

3 → 1=明治、2=大正、3=昭和、4=平成
15 → 15年
09 → 9月
27 → 27日

→昭和15年9月27日

年号がクセモノで、どう処理すればいいか見当が付きません。
何卒よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

あらかじめSheet2のA1からB4までに


1明治
2大正
3昭和
4平成
という表を作りこの範囲に元号という名前を定義しておきます。
Sheet1のA1に3150927が入っているとします。
こんな式でどうでしょうか。
=VLOOKUP(VALUE(LEFT(A1,1)),元号,2)&MID(A1,2,2)&"年"&MID(A1,4,2)&"月"&RIGHT(A1,2)&"日"
    • good
    • 1
この回答へのお礼

すごい、あっという間にこんなに回答が集まるなんて!
一番早くに回答をくださったakiomyauさんをベストアンサーとさせて頂きました。
バッチリ出来ました。

LEFT、MID、RIGHT関数はこれまで使ったことがありませんでしたが
文字列を操作する関数なのでしょうか。勉強になりました。
どうもありがとうございました。

お礼日時:2013/11/18 15:41

他の方と若干かぶりますが、



=DATEVALUE(CHOOSE(LEFT(A1,1),"明治","大正","昭和","平成")&MID(A1,2,2)&"年"&MID(A1,4,2)&"月"&RIGHT(A1,2)&"日")

とかでも。
表示形式を「ggge"年"m"月"n"日"」で。
    • good
    • 1
この回答へのお礼

chonamiさん、どうもありがとうございました。
いやはや、パッと出てくるなんて皆さんすごいです。

お礼日時:2013/11/18 15:44

3150927がA1セルに有る場合で、セルの表示形式を日付の和暦にする場合は、



=VALUE(CHOOSE(LEFT($A$1,1),"明治","大正","昭和","平成")&VALUE(MID($A$1,2,2))&"年"&VALUE(MID($A$1,4,2))&"月"&VALUE(MID($A$1,6,2))&"日")
    • good
    • 1

3150927がA1セルに有る場合ですが、



=CHOOSE(LEFT($A$1,1),"明治","大正","昭和","平成")&VALUE(MID($A$1,2,2))&"年"&VALUE(MID($A$1,4,2))&"月"&VALUE(MID($A$1,6,2))&"日"
    • good
    • 1
この回答へのお礼

aokiiさん、どうもありがとうございました。
これまでCHOOSEとVALUEも使ったことがなかったので、改めて調べてみたいと思います。

お礼日時:2013/11/18 15:43

>年号がクセモノで、どう処理すればいいか見当が付きません。



if文で処理すると長くなるので、数字と年号との対応を記述した別表を作成してvlookupで参照するのが簡単でしょう。

例えば
a1に数列があり、別表がD1:E5にあったとして
=(VLOOKUP(LEFT(A1,1)*1,$D1:$E5,2)&MID(A1,2,2)&"/"&MID(A1,4,2)&"/"&RIGHT(A1,2))*1
とすればOKです。

最後に表示形式で和暦表示にしてください。
「エクセルで数列を和暦+月日に変換」の回答画像2
    • good
    • 0
この回答へのお礼

shintaro-2さん、どうもありがとうございました。

お礼日時:2013/11/18 15:42

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelで日付を数字8桁で入力、表示は和暦での方法

Excelで日付を「20080205」と8桁数字で入力し、
表示を「平成20年2月5日」とさせる方法を教えてください。
「########」と表示され困っています。

Aベストアンサー

「########」は、セル幅が足りないときのエラー表示の場合がありますので、セル幅を広げてみてください。

また、日付入力は、「2008/5/14」のようにスラッシュで区切るのが「標準」ですね。
ご質問の8桁数値を日付に変えるには、特殊なワザが必要なようです。

http://www.relief.jp/itnote/archives/001908.php

Qエクセル 昭和を3と表示する式について

エクセル2007です。
S28.6.12を3280612と表示するため調べたところ次の式でうまく表示できました。
=IF(COUNT(A1),FIND(TEXT(A1,"G"),"MTSH")&TEXT(A1,"RMMDD"),"")

この式の中で判らないところがあります。
一つは、COUNT(A1)です。
COUNT関数は、数値データのセルを数える関数ですが、この数式でCOUNT(A1)(結果は1になります)を使うのかということです。
又次に判らないところは、
1の時に文字列が開始位置から何番目にあるかを返す、FIND関数で検索文字列をTEXT(A1,"G")とするのか、その中の"G"はなにを意味するのか
さらに対象がFIND(TEXT(A1,"g"),"MTSH")でこの結果が3になるのか

TEXT(A1,"RMMDD")の中のRは何を表すのか、そしてこの答えが"280612"なるのか

質問をしていて何か判らないことだらけで混乱してますが、お判りの方教えてください。

Aベストアンサー

・COUNT(A1)の意味
あくまでも日付の制御にかかわるのは「FIND(TEXT(A1,"G"),"MTSH")&TEXT(A1,"RMMDD")」の部分ですが、この関数式は対象セルがブランクでも反応します。ブランクを日付ゼロとみなし、明治30年1月0日と判定します。エクセルでは数値1を1900/1/1とするためです。それを嫌ったのでしょう。
=IF(A1=FALSE,"",FIND(TEXT(A1,"G"),"MTSH")&TEXT(A1,"RMMDD"))でも同様の働きができますが、書いた方の癖なのでしょう。

・FIND(TEXT(A1,"g"),"MTSH")でこの結果が3になるのか
FIND関数は指定された文字列 (検索文字列) を他の文字列 (対象) の中で検索し、その文字列が他の文字列内で最初に現れる位置を左端から数え、その番号を返します。
TEXT関数は対象を任意の表示形式に変換する関数で、この場合A1セルの日付を元号="g"、つまり明治ならM、大正ならT、昭和ならS、平成ならHに変換します。
昭和の日付なら「S」に変換されますので、"MTSH"の中の「3」番目であると処理します。

・TEXT(A1,"RMMDD")の中のRは何を表すのか、そしてこの答えが"280612"なるのか
すでに述べたようにEXT関数は対象を任意の表示形式に変換する関数ですので、この場合は「R」=元号をのぞいた年数、「MM」=二桁表示の月(6月=06)、「DD」=二桁表示の日となります。

・COUNT(A1)の意味
あくまでも日付の制御にかかわるのは「FIND(TEXT(A1,"G"),"MTSH")&TEXT(A1,"RMMDD")」の部分ですが、この関数式は対象セルがブランクでも反応します。ブランクを日付ゼロとみなし、明治30年1月0日と判定します。エクセルでは数値1を1900/1/1とするためです。それを嫌ったのでしょう。
=IF(A1=FALSE,"",FIND(TEXT(A1,"G"),"MTSH")&TEXT(A1,"RMMDD"))でも同様の働きができますが、書いた方の癖なのでしょう。

・FIND(TEXT(A1,"g"),"MTSH")でこの結果が3になるのか
FIND関数は指定された文字...続きを読む

QEXCELでの日付表示について

申し訳ありませんが、初心者ですのでお教え願います。

左記のようなデータ(文字式)を右記のようなエクセルの日付として表示する方法が分かりません。
なお、一桁目の3は昭和、4は平成です。

3230620  S23.6.20
4230620  H23.6.20

Aベストアンサー

No.5です。

まだ見てくれるかどうかわかりませんが、一応訂正しておきます。
No.5より、こっちの方が数式が短くなります。

=--TEXT(RIGHT(A1,6),IF(--LEFT(A1)=3,"!S00-00-00","!H00-00-00"))

対象セルが空白でもエラーを出さないようにするには、

=IF(ISNUMBER(A1),--TEXT(RIGHT(A1,6),IF(--LEFT(A1)=3,"!S00-00-00","!H00-00-00")),"")

Qエクセルで、頭に0をつけて数字の桁を揃える方法

エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

どうぞよろしくお願いいたします。

Aベストアンサー

次の方法は如何でしょうか。
(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除

Qexcelからexcelへの差し込み印刷

お世話になります。

excelでwordへの差し込み印刷をよく利用するのですが、
同様に、
excelのデータをexcelに流し込んで印刷する方法はありますでしょうか。

excelの名簿のデータを
excelの表のフォーマットに流し込んで
1人づつ印刷したいのですが。

お分かりの方いらっしゃいました教えてください。
どうぞ宜しくお願い致します。

Aベストアンサー

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

上記の品をお送り申し上げます。
ご査収ください

以上
Xの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,2,FALSE)
Yの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,3,FALSE)
Zの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,4,FALSE)

---
結果

送り状

住所山田 三郎
氏名東京都江東区

品物かばん

上記の品をお送り申し上げます。
ご査収ください

以上
ここで
VBE画面で標準モジュールに
Sub test01()
For i = 1 To 2 '人数分
Range("H1") = i
Range("A1:G20").PrintOut '印刷範囲は各人同じとする
Next i
End Sub
を張り付け、実行する。
山田、植田分の紙が2枚印刷されました。
これは質問者はVBAの経験も無いでしょうと、最低限にしてあります。
VBAを勉強してください。
別ブックにある名簿を対象などは複雑になるので避けています。

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Q【エクセル】数値にスラッシュを入れるには?

エクセルの質問です。
生年月日が、例えば『1980年1月1日』であれば『19800101』と全て数字で入っています。これを『1980/01/01』と表示させるにはどうしたらいいでしょうか??
ご存知の方、どうぞよろしくお願い致します!!

Aベストアンサー

回答No1です。
1980/01/01と表示したい場合には「セルの書式設定」の「表示形式」タブで「ユーザー定義」を選び種類の窓にはyyyy/mm/ddと入力してOKします。

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

QExcelで、年だけの「西暦」から、「西暦(和暦)年」に変換する方法は?

50過ぎのおじさんです。資料の整理をしていますが、以下のことで困っています。どなたか、よろしくお願いします。

A列に、1958、1999、2008、…のように、年だけの西暦が並んでおり、これをB列に、1958(昭和33)年、1999(平成11)年、2008(平成20)年、…と変換したいのですが、どのように操作したらよいのでしょうか?

重ねてよろしくお願いします。

Aベストアンサー

A1に1958 B1に =DATE(A1,1,1)
A2に1999 B2に =DATE(A2,1,1)
A3に2008 B3に =DATE(A3,1,1)

B列に 
書式 → セルの書式設定 → 表示形式 → ユーザー定義 → 種類にyyyy(ggge)"年"と入力


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング