年齢や勤続期間の計算に重宝する実用関数「DATEDIF」。だがExcel 2007では、全く同じ式が違った結果になることが…。試しに検算してみると、2007の不具合(バグ)であることは明白。この関数にまつわる歴史をひも解くと、原因の一端がうかがえる。
「Excel 2007には不具合がある」──。あるExcel関連のコミュニティーサイトで、そんな話題が持ち上がっていた。新しいソフトにバグはつきもの。「またか」と読み進めていくと、珍しく関数についての指摘だった。なるほど、DATEDIF(デイトディフ)関数の式を立ててみると、全く同じ式にもかかわらず、従来版と2007とで、異なる結果になることがあるのだ。
そもそもDATEDIF関数は、引数に「開始日」と「終了日」を指定して、その期間の長さを計算する関数。3番目の引数に、求める「単位」を指定する。単位を「Y」とすれば年数を計算できるので、とりわけ年齢計算に便利。開始日に生年月日、終了日に今日の日付を指定すれば、今日時点での満年齢を一発で計算できる。年数を除いた月の端数を求める機能もあり、「○年○カ月」のように勤続期間を算出したいときにも威力を発揮する。
さて、上図に示した問題の式では、開始日を「2001年12月1日」、終了日を「2003年11月30日」と指定して、その期間の長さを求めている。正しくは「1年と364日」なので、単位を「YD」と指定して端数となる日数を求めれば、「364」と答えが表示されるはずだ。確かにExcel 2003ではそのように計算される。だが、2007で同じ式を立てると、「50」という明らかに間違った結果が表示されてくる。
| 年数や月数を一発で計算できる実用関数 |
|
|
DATEDIF関数は、引数に指定した「開始日」から「終了日」までの年数や月数を計算できるスグレもの。引数「単位」に所定の記号を指定して、求める単位を切り替える。単位は「"」で挟んで指定する
|
|
|
引数「単位」を「"Y"」とすれば年数が求められるので、今日時点の満年齢がわかる。「"YM"」とすれば月の端数が求められるので、年数を求める式などと組み合わせれば「○年○カ月」と表示できる
|
7年分168冊、約2万ページが1枚のDVDに!
日経パソコン読者には特価を適用!
パソコンはもちろん、プリンター、スマホ、
テレビもつないで、もっと便利に!
とにかく読みやすい入門書!
見やすい文書作りのコツを「実例」で学ぶ!
そもそもスマホって? 携帯と何が違うの?
も解説。買い方、使い方を分かりやすく紹介
パソコンを仕事と生活に活かす総合情報誌
・Vista/XPから脱出せよ
・「2012年型パソコン」を読み解く
・ビジネスプリンター購入ガイドほか
パソコン初心者応援マガジン
・写真とビデオをデジタル保存
・ウェブアルバムを使おう
・フェイスブック初めの一歩ほか
パワーユーザーのためのPC総合情報誌
・2012年版自作の疑問100
・旬のPCケース25製品レビュー
・Radeon HD7970を速攻テストほか
ビジネスマンのパソコン誌
・今すぐ始めるクラウド
・DVD&ブルーレイ活用術
・ネット&携帯電話 節約ガイドほか