2019-09-12 23:41 [Thu]
バグったままの関数に苦しんだ
» 日記
なかなか上手くいかないものだ。痒い所に手が届かない。やっぱりエクセルの話。
きっと後から楽になるはず、と自分に言い聞かせてエクセルを弄り続けている。
DATEDIF()関数の罠にハマったわ。
非公式関数なのをいい事に、バグったまま長年放置されている。
こんな罠がエクセルに隠されていたなんて、知らなかった。
しかも代替方法がなかなか見つからなくて、軽く絶望したわ。
今更、専用のプログラムを組むのも面倒だったしな。
Ufuidotnet(うふい.net)/Excel「DATEDIF」関数の使い方
https://www.ufui.net/pc-tips/excel002.html
バグはうるう年の計算に関して。
結構、複雑なバグをかかえているらしく、簡単には修正できない?
いったいどうやって作ったのだ。
そして作った人はバグったまま放置しておいて、気持ち悪くないのか。
No.50 DATEDIFの謎を追え(1) ~ DATEDIF関数の真実
http://www.niji.or.jp/home/toru/notes/50.html
上リンク先の記事が面白い。
どのようにバグっているのか検証してくれている。
No.51 DATEDIFの謎を追え(2) ~ DATEDIF関数の実装(VBA編)
http://www.niji.or.jp/home/toru/notes/51.html
続編。解決策が書かれている。
Lotus 1-2-3と互換性のある、真のDATEDIF()関数を、
VBAを使って再現してある。本当に助かった、ありがとう!!
初めてエクセルのVBAを使った(と言っても上リンク先のコードをコピペしただけ)。
なかなか便利かもしれないね?
また凝り始めると、実作業が遠のくので、深入りはしないでおく。
VBAの使い方を軽く調べただけなので、間違っているかもしれない。
関数名だけではなく、シート名も入ってしまって、記述が長くなってしまうのだ。
一時的に便利でも保守はしたくない
http://dqx11.blog81.fc2.com/blog-entry-1694.html
前に載せた画像の関数よりも、圧倒的に長い式が出来上がった。
倍以上の長さだ。中身はシンプルなので、保守できると思うけどな。心配だ。
結構、豪華なエクセルになってきた。しかし他の人には見せたくない、自己満足品