[[20060824113149]] 『和暦生年月日から西暦と年齢に変換』(jxssatb) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『和暦生年月日から西暦と年齢に変換』(jxssatb)

[明治・大正・昭和生まれの生年月日を西暦年号と年齢に変換する方法を教えてください。又、ドロップダウンリストで誕生日を選べると嬉しいです。]


 「明治・大正・昭和生まれの生年月日」はどのように入力されていますか?
 A1で「明治・大正・昭和」を選択して
 B1で年、C1で月、D1で日を選択するようにするとか?
 明治33年以降なら都合が良さそうですが、明治は何年から必要ですか?
   (Hatch)


A1に和暦の生年月日があるとして

B1(西暦の生年月日)=TEXT(DATEVALUE(A1),"yyyy/m/d")

C1(年齢)=TEXT(TODAY()-B1,"Y")

「ドロップダウンリストで誕生日」は、

入力する際に使用するのか、入力されている生年月日のリストを使用するのか?

リストから指定したら、その「西暦の生年月日」と「年齢」が表示されるようにしたいのか?

EXCELで入力されるのであれば、書式が「文字列」でなければ和暦を入力しても西暦で入力されます。

西暦で入力しても和暦で表示することは可能です。(Ohagi)


 ↑すみませんがご署名を・・・文末にでも括弧付きで書くだけです・・・
   (Hatch) ←こんな感じで・・・よろしく

ごめんなさい<(_ _)>  (Ohagi)

 横から失礼します。
Ohagiさんは
A1に〜
 を書かれた方ですよね?
そちらにも名前を書いたほうが分かりやすいと思います。
(小心者)

ですね…
使い慣れてなくてすみません。
教えて頂いてありがとうございます。(Ohagi)


御指導有難う御座います。
明治33年〜昭和30年位の間で、入力時にドロップダウンリストを利用し、それによって年齢を表示出来ればと思っております。(jxssatb)

明治33年1月1日〜昭和30年12月31日までなどだと、

件数が多くてリストから選択するのが大変なので

年号・年・月・日 と分けて見てはいかがでしょうか?

リストに使用する数字一覧を別に用意(1〜45 = A1:A45 として)

データ→入力規則→「ドロップダウンリストから選択する」にチェック で

年号(A1)=入力値の種類「リスト」元の値「明治,大正,昭和」

年(B1)=入力値の種類「リスト」元の値「A1:A45」

月(C1)=入力値の種類「リスト」元の値「A1:A12」

日(D1)=入力値の種類「リスト」元の値「A1:A31」

年齢 =DATEDIF(TEXT(A1&B1&C1&D1,"yyyy/mm/dd"),TODAY()-1,"Y")

(Ohagi)


Ohagiさんありがとうございます。
リストに使用する数字一覧を別に用意(1〜45 = A1:A45 として)の処がわかりません
教えてください(jxssatb)

 こんな感じでしょうか? (Hatch)
Sheet2に
	A	B	C	D	E
1	明治	大正	昭和	月	日
2	30	1	1	1	1
3	31	2	2	2	2
4	32	3	3	3	3
5	33	4	4	4	4
6	:	:	:	:	:
?	45	15	63	12	31

 A1:C1を選択して挿入→名前→定義で「和暦」
 A1:A17を選択して挿入→名前→作成で上端行にチェックしOK。「明治」と名前を定義
 B1:B16を選択して挿入→名前→作成で上端行にチェックしOK。「大正」と名前を定義
 ・・・
 E1:E32を選択して挿入→名前→作成で上端行にチェックしOK。「日」と名前を定義

 Sheet1
A1セル:データ→入力規則で「リスト」「=和暦」
B1セル:データ→入力規則で「リスト」「=INDIRECT(A1)」、セルの書式設定で表示形式を「G/標準"年"」
C1セル:データ→入力規則で「リスト」「=月」、セルの書式設定で表示形式を「G/標準"月"」
D1セル:データ→入力規則で「リスト」「=日」、セルの書式設定で表示形式を「G/標準"日"」
年齢計算は
E1セル:=DATEDIF(TEXT(A1&B1&"年"&C1&"月"&D1&"日","yyyy/mm/dd"),TODAY()-1,"Y")


Hatchさんどうも有難う御座いました。

とても丁寧に教えていただき、助かりました。

おかげ様で解決いたしました。

(jxssatb)


数式を入れたE1が,A1:D1に数字を入れないと#VALUE!となってしまいます。

これを表示させない方法なんて有るのですか?

(jxssatb)


 =IF(COUNT(A1:D1)=4,DATEDIF(TEXT(A1&B1&"年"&C1&"月"&D1&"日","yyyy/mm/dd"),TODAY()-1,"Y"),"")
 のようにしたらどうでしょう? (Hatch)


(Hatch)さんありがとうございます

おかげさまで、スッキリとした表が出来上がりました。

(jxssatb)


 A1は元号(文字列)ですよね?
対処されてるかも知れませんが、
COUNT(A1:D1)=4 >>> SUM(COUNTA(A1),COUNT(B1:D1))=4
のようにしないと、全て""が返りますよ。
(sin) ちょっと、気になったもので・・・

 あっ、その通りですね・・・sinさんフォローありがとうございます。(Hatch)


(jxssatb)です。

Hatchさんの式をお借りしました。ただし、=IF(COUNT(A1:D1)=4,DATEDIF(A1&B1&"年・・
             

                                                          ↑    ~~~~~~~~~~

↑所を3にさせて頂きました。結果うまくいきました。~~~~~部分を1と考えたのですが間

違っていますか?今後の為に教えてください(jxssatb) 


 =IF(COUNT(B1:D1)=3,DATEDIF(・・・
 としたら、B1〜D1の3箇所に数値が入力され、A1が空欄のままであった時にはエラーになるでしょう。
 A1〜D1の全てが入力(選択)されていることにするなら、
 sinさんが書かれたように
 =IF(SUM(COUNTA(A1),COUNT(B1:D1))=4,DATEDIF(・・・
 の方がよさそうに思えます。
 =IF(COUNTBLANK(A1:D1)=0,DATEDIF(・・・
 と書くこともできそうな気もします。
 波線部分はどこに掛っていて、どこを1にするのでしょう?・・・理解できませんでした(^^;)
   (Hatch)


=IF(COUNT(A1:D1)=3,DATEDIF(A1&B1&"年・・・・と致しました。

A1とB1で一つのセットと考えました。なぜなら、4にすると年齢が計算されなかったからです。

因みに、A1〜D1どこが空欄でもエラーになりませんでした。(jxssatb)


 大正10年や昭和30年に対して、元号を抜かして(空白)試してみて!
(sin) ※平成→大正に修正。Listに無かったのね・・・

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.