
田中教徒が二言目には口にする「可読性」、ナニソレ、美味しいの?
=================================
「難しい関数は使わずIFだけで判りやすく書いてみました」
みたいなことを言う人がたまにいますよね。
「なんかいなかんじはしようせずひらがなだけでへいいにきじゅつしてみました」
こういうこと?
あるいは、
3^4
と書くよりも
3*3*3*3
と書く方が判りやすくて
3*3*3*3
と書くよりも (((3+3+3)+(3+3+3)+(3+3+3))+((3+3+3)+(3+3+3)+(3+3+3))+((3+3+3)+(3+3+3)+(3+3+3)))+(((3+3+3)+(3+3+3)+(3+3+3))+((3+3+3)+(3+3+3)+(3+3+3))+((3+3+3)+(3+3+3)+(3+3+3)))+(((3+3+3)+(3+3+3)+(3+3+3))+((3+3+3)+(3+3+3)+(3+3+3))+((3+3+3)+(3+3+3)+(3+3+3)))
と書く方が判りやすいとか、そういうこと?
ナルホド。
掛け算だけで書けば、累乗を知らない人にも簡単に理解できるし
足し算だけで書けば、乗算を知らない人にも簡単に理解できますね(^^
IFだけ使って数式書けば
IFしか知らない人にも「動作」を追うことはできるよね。
でも、IFだけ使ってごちゃごちゃネストした数式って
「意図」とか「構造」とか「挙動」とか
「動作」以外の部分の「可読性」は明らかに悪化してるよね。
その数式の「意図」や「構造」や「挙動」の判りやすさよりも、
IFしか知らないような人でも「動作」を追えることの方が大事?
私がIFではなくINDEXやMATCHやCHOOSEやMODを使うのはそういう理由。
「ムズカシイ関数」を知ってるのがウレシイからぢゃありません。
=================================
「作業列を使って判りやすく処理しました」
みたいなことを言う人がよくいますよね。
【作業列を使った方が「判りやすく」なることがある】
【作業列を使った方がたいていの場合速い】
否定しません。
問題は…
その作業列が
・いったいどういう意図で何を計算していて
・その結果をどこで使ってるのか
・数式を変更するとどこに影響するのか
を、作った本人以外が把握するのは結構面倒だということ。
ワークシート分析?
そですね。そんな機能もありましたね。忘れてました(爆
受け取ったブックを一つ一つ「分析」できるほど
のんびりした職場じゃないんです、スミマセン。
【速度的に問題がなく】【将来的に変更の可能性がない】ならば
ネストして、パッケージ化/ブラックボックス化した方が
ブック全体の「可読性」が向上するし、取り回しも良くなる
…こともあります(笑
なんかやけに重たい計算してる作業列があって
パッとみた感じ、どこからも参照してないように見えるんだけど
最悪他のブックから参照してる可能性もあって消すに消せない
みたいなこともありますしね。
Excelコンテストみたいな状況であれば
作業列一つ一つに丁寧にコメントつけたりなんてのもアリでしょうけど
「作業列ごとにコメントつける」というタスクが発生すること自体
作業列を使うことによって作業効率が悪化してますよね。
ついでに言うと、Q&Aサイトの回答で数式を提示する場合には、
【数式の数が増えるほど、ヒューマンエラーの発生率が上がります】
「エラーの発生率が高い」というのは重大な欠点では?
私が数式一発回答を寄せることが多いのは主としてそういう理由。
「フクザツな数式」を作れるのがウレシイからぢゃありません。
=================================
「[名前]を使って判りやすく…(以下ry」
えっと
・[名前]がどこで使用されてるかが【判りにくい】んですが…。
・[名前]が現に使用されてるかどうかが【判りにくい】んですが…。
・[名前]が実際にどこを参照しているかが【判りにくい】んですが…。
・[名前]に見出行・見出列が含まれてるかどうかが【判りにくい】んですが…。
・[名前]に揮発性関数使われると死ぬほど重たくなるんですが…。
・[名前]使ってるシートのコピーでトラブることが多いんですが…。
いや、私も[名前]使いますけどね、しばしば。
ものには「程度」ってもんがあるだろうと。
コンテストはコンテスト、実務は実務。
Excelコンテストぢゃないんだから、
総ての参照に[名前]付けて「名前一覧シート」みたいなもの一々作ってたら
日が暮れるだろと。