Home » Excel(エクセル)の関数・数式の使い方 » 計算式の一部を外に出す

対象:Excel97,Excel2000,Excel2002,Excel2003,Excel2007

「=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)))」といった数式で、A1セルに入力された日付から土日を除いた最終営業日を取得できることをご紹介しました。

関数がネストされていて、なかなか読み辛い計算式ですが、こんなときは途中に改行をいれたり、スペースを入れてインデントすることで可読性は向上します。

先の計算式も改行とインデントを行えば以下のようになって随分と読みやすくなります。

=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」シートには今回ご紹介した、数式の一部を外に出した例を作成してあります。

どちらが理解しやすいか、メンテナンスしやすいか、ご確認ください。

[スポンサードリンク]

Home » Excel(エクセル)の関数・数式の使い方 » 計算式の一部を外に出す

「Excel(エクセル)の関数・数式の使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.