関数がネストされていて、なかなか読み辛い計算式ですが、こんなときは途中に改行をいれたり、スペースを入れてインデントすることで可読性は向上します。
先の計算式も改行とインデントを行えば以下のようになって随分と読みやすくなります。
=IF(WEEKDAY(EOMONTH(A1,0),2)=7,
EOMONTH(A1,0)-2,
IF(WEEKDAY(EOMONTH(A1,0),2)=6,
EOMONTH(A1,0)-1,
EOMONTH(A1,0)
)
)
ここでもう一つ考えるべきは、数式を分解して、一部を外に出してしまうということです。
先の数式なら、
「EOMONTH(A1,0)」
という部分が何度も出てきますので、この数式を外に出すことで随分可読性が向上します。
※A1セルに日付を入力したときに、A2セルに月末日を表示し、A6セルに月末最終営業日を表示する例 A2セルに
「=EOMONTH(A1,0)」
という数式を入力
↓
A6セルに
「=IF(WEEKDAY(A2,2)=7,A2-2,IF(WEEKDAY(A2,2)=6,A2-1,A2))」
という数式を入力
「「=IF(WEEKDAY(EOMONTH(A1,0),2)=7,EOMONTH(A1,0)-2,IF(WEEKDAY(EOMONTH(A1,0),2)=6,EOMONTH(A1,0)-1,EOMONTH(A1,0)))」
」
という数式から、その一部をA2セルに
「=EOMONTH(A1,0)」
と出してしまい、A2セルを参照するようにすれば
「=IF(WEEKDAY(A2,2)=7,A2-2,IF(WEEKDAY(A2,2)=6,A2-1,A2))」
とかなり読みやすい数式になります。
=IF(WEEKDAY(EOMONTH(A1,0),2)=7,
EOMONTH(A1,0)-2,
IF(WEEKDAY(EOMONTH(A1,0),2)=6,
EOMONTH(A1,0)-1,
EOMONTH(A1,0)
)
)
と同じく改行やインデントを行ってみても読みやすさは格段に違います。
=IF(WEEKDAY(A2,2)=7,
A2-2,
IF(WEEKDAY(A2,2)=6,
A2-1,
A2
)
)
「複数条件でCOUNTIFするには?」というご質問に対して作業用のセルを作成することで、簡単にカウントできることをご紹介しましたが、考え方としては同じです。
Excelに慣れていない方は、一つのセルの中でなんでも完結させようとしてしまう傾向がありますが、複数のセルを利用するほうが簡単にできてしまうということはよくあります。
▼サンプルファイル(003146.xls 59KByte)ダウンロード
サンプルファイルの「土日を除いた月末最終営業日(1)」シートには前回ご紹介した、一つのセルで数式を完結させている例、「土日を除いた月末最終営業日(2」シートには今回ご紹介した、数式の一部を外に出した例を作成してあります。
どちらが理解しやすいか、メンテナンスしやすいか、ご確認ください。
- Newer:ダブルクォーテーション?ダブルクォート?ダブルコーテーション?
- Older:×ウィンドーズ、○ウィンドウズ
Home » Excel(エクセル)の関数・数式の使い方 » 計算式の一部を外に出す