【元号と西暦のごちゃ混ぜに難あり】 いつまでややこしいことを続けるのか?岡田克敏(2007-07-15 05:30)
元号と西暦とどちらを多く利用するのか?と問われれば、私の場合は西暦です。ここでは、どちらが正しく、どちらが間違えだとかの論議をするつもりは無いのだけど。
古い話で恐縮だがメートル法と尺貫法の共存時代を持ち出さなくとも、2種類の単位系が並存するややこしさ、不便さはどなたでもお分かりだろう。
コレについては、相手が理解しやすいように単位を使い分ければよい。と、思うだけなのですけどね。メートル法を基準にしてみようと考えてみたところで、海外とのやり取りをする上ではスクエアフィートやエーカーに換算しなければならないし、国内では「坪」のほうがしっくり来ることもある。まぁ、コレは尺貫法とは微妙に違うのだけど。本当はメートル法の方が実生活にあっていない部分も多いのだが、良しとしておく。
このエントリーで書きたいことはそういうことではなく、チョットした小ネタ(Excel)。日付の入力がシリアル値でなかったときの対応法とでも言っておきましょう。
先ず、「2007-07-15 05:30」をこのままコピー&ペーストで、シリアル値:39278.22917が得られます。つまり、表示形式を「yyyy-mm-dd hh:mm」とすれば、「2007-07-15 05:30」と表示され、「ggge"年"mm"月"dd"日 "hh"時"mm"分"」とすれば「平成19年07月15日 05時30分」と表示される。つまり、シリアル値として入力されているのかどうかが問題なのです。これは、表示形式を「aaaa」とすれば、「日曜日」と言う表示も可能なわけです。
「平成19年07月15日 05時30分」は、コピー&ペーストでは文字列として認識されるため、「=LEFT(A1,FIND("日",A1,1))*1+RIGHT(A1,LEN(A1)-FIND("日",A1,1))*1」のような関数が必要になります。
過去の資料の中でよく発見するのは、「20070715」と言う表記。(対象文字列:A1、以下全て)これはシリアル値ではないので、別セルに「=TEXT(A1,"0000-00-00")*1」とすることでシリアル値が求められます。
では「190715」=「平成19年07月15日」の意味。は、どうでしょう?仮に即席で作ったものですが、(そういう入力が無いので…)
「=CONCATENATE("h",LEFT(A1,2),".",MIDB(A1,3,2),".",RIGHT(A1,2))*1」これでシリアル値を得ることができます。元号の場合、5桁入力の場合が考えられるので「=("h"&TEXT(A1,"00-00-00"))*1」の方が汎用性は広いか。この関数では、H・S・T・Mは人的な労力が必要。
過去に入力されたデータ(不本意な)であっても、工夫次第で何とかなるものは多いです。ここに示したものは一例にか過ぎません^^;)。
追記2007/07/17
石さんのこれは、「エクセル技道場」に新しいネタが追加されたと言うことだろうか?今のところ、発見できてないが…
http://d.hatena.ne.jp/pasosavi/20070717