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

    前に載せた画像の関数よりも、圧倒的に長い式が出来上がった。
    倍以上の長さだ。中身はシンプルなので、保守できると思うけどな。心配だ。

    結構、豪華なエクセルになってきた。しかし他の人には見せたくない、自己満足品
     

    コメントの投稿

    非公開コメント

ブログ内検索
Flashカレンダー
月別アーカイブ
リンク
Glep Web Ring
    Glep Web Ring