- ベストアンサー
日付の編集(例えば2006/50を2006/2/19としたい)
例えば2006/50と表記されているデータを2006/2/19と表記したい場合、 どのような方法があるのでしょうか? 明日までに解決したいのですが、ご存知の方いらっしゃいましたら どうかご教示くださいm(__)m
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 すみません、遅くなってしまいました。 (A1は06/50) =DATE(2000*(LEFT(A1,2)-27<0)+LEFT(A1,2),1,MID(A1,FIND("/",A1)+1,6)) たぶん、こんな感じですね。 27というのは、昭和まで扱うという意味です。 最後の6 というのは、06/364 ←で、6文字が最高になるからです。 変わった式だという印象を受けると思います。 念のために、等号式は、文字列を演算をする限りは、数値になって比較できますが、 LEFT(A1,2)<27 は、比較できません。というか、文字列との比較になるので、必ず、LEFT関数のほうが大きくなってしまいます。 +LEFT(A1,2) も演算して数値になるとという原理が働いています。 Excelって不思議ですね。プログラムなどの常識の範囲とはちょっと違う計算のようです。
その他の回答 (8)
- Nouble
- ベストアンサー率18% (330/1783)
何年度と認識させて良いやら解らないのですが、 A1セルに元の記載、A2セルに年度データがあるものとして回答します。 =DATE(A2,VALUE(LEFT(A1,FIND("/",A1,1)-1)),1)+VALUE(RIGHT(A1,LEN(A1)-FIND("/",A1))) と入力 表示形式を日付に変更 では如何でしょうか? 年の項にあった式を月の項に写し、年の項を参照に変えただけですね 対して変わってませんが十分だと思いますよ
[ANo.5この回答へのお礼]に対するコメント、 C1: =DATE(2000-100*(LEFT(A1,2)*1>50)+B1,1,0)+MID(A1,FIND("/",A1)+1,3) で如何かと。 セル B1 の式は不要です。 セル A1 の左端が 00~50 は 2000年~2050年のこと 51~99 は 1951年~1999年のこと としています。 なお、ANo.5中に示した式中の 366 は単に 3 でOKでした。
- Nouble
- ベストアンサー率18% (330/1783)
=DATE(VALUE(LEFT(A1,FIND("/",A1,1)-1)),1,1)+VALUE(RIGHT(A1,LEN(A1)-FIND("/",A1))) と入力 表示形式を日付に変更 では如何でしょうか?
ANo.4 は間違えました。次の式に訂正します。 =DATE(LEFT(A1,4),1,0)+MID(A1,FIND("/",A1)+1,366)
=DATE(LEFT(A1,4),1,0)+50
- imogasi
- ベストアンサー率27% (4737/17069)
2006/50は2006年の50日目らしい。質問に文章で書いておくこと。 A1に2006/50 B1に=LEFT(A1,FIND("/",A1)-1)で2006 C1に=MID(A1,FIND("/",A1)+1,LEN(A1)-FIND("/",A1)) で50 D1に=DATE(B1,1,1)で 2006/1/1 E1に=D1+C1-1 で2006/2/19 がでます。書式を日付にすること 関数をネストすれば、4列も使わないが、理解の為にそうしておく。
お礼
ご丁寧にありがとうございました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 A1: 2006/50 だとしたら、以下のような式で出せます。 =DATE(LEFT(A1,4),1,MID(A1,FIND("/",A1)+1,8))
お礼
ありがとうございました。 上手くいきました。 後で気づいたのですが、2006/50ではなく06/50を2006/2/19にする必要があったのですが、ご教示頂いた記述を参考にして上手くいく事が出来ました。 私が行った手順は以下です。 前提:セル(A1は06/50) (1)セルB1に =IF(OR(LEFT(A1,2)="01",LEFT(A1,2)="02",LEFT(A1,2)="03",LEFT(A1,2)="04",LEFT(A1,2)="05",LEFT(A1,2)="06",LEFT(A1,2)="00"),20&A1,19&A1)を記入。 (2)セルC1にご教示頂いた =DATE(LEFT(A1,4),1,MID(A1,FIND("/",A1)+1,8)) ないし =DATE(LEFT(B1,4),1,0)+MID(B1,FIND("/",B1)+1,366)を記入。 ※もっとスマートなやり方がありましたら、急ぎませんのでかさねて ご教示頂けたら幸いです。 本当に時間がなく、困っていました。 ありがとうございました。
- bluemente
- ベストアンサー率32% (176/537)
Excelですよね? 2006/50の行もしくは、列で右クリック~セルの書式設定~表示形式で日付を選ぶとお好きな表示形式が選べます。
お礼
ご回答ありがとうございます。 表示形式の変更では上手く行きませんでした。 後学のため、具体的な記述を教えて頂けると嬉しいです。
お礼
ありがとうございました。 上手くいきました。 後で気づいたのですが、2006/50ではなく06/50を2006/2/19にする必要があったのですが、ご教示頂いた記述を参考にして上手くいく事が出来ました。 私が行った手順は以下です。 前提:セル(A1は06/50) (1)セルB1に =IF(OR(LEFT(A1,2)="01",LEFT(A1,2)="02",LEFT(A1,2)="03",LEFT(A1,2)="04",LEFT(A1,2)="05",LEFT(A1,2)="06",LEFT(A1,2)="00"),20&A1,19&A1)を記入。 (2)セルC1にご教示頂いた =DATE(LEFT(A1,4),1,MID(A1,FIND("/",A1)+1,8)) ないし =DATE(LEFT(B1,4),1,0)+MID(B1,FIND("/",B1)+1,366)を記入。 ※もっとスマートなやり方がありましたら、急ぎませんのでかさねて ご教示頂けたら幸いです。 本当に時間がなく、困っていました。 ありがとうございました。