重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

別紙添付の資料はある方のユーチューブを参考にしています、私が取り出したい営業日の日付一覧は2025年1月から12月末までの一年間の土日祝日を除いた日付一覧表をA2から下に作りたいのですが、ユーチューブを参考に取り込んだ数式 =WORKDAY($D$1,ROWS($B$2:$B2),$F$3:$F$23)の意味がよく分かっていません、例えばなぜ$B$2:B2が必要なのかとか?この数式の意味を分かりやすくご説明いただけないでしょうか?私なりに2025年の営業日一覧表が作りたいのです、よろしくお願します。

「Excelについて教えてください。」の質問画像

A 回答 (4件)

画像から判断すると、ご質問者のEXCELのバージョンはスピル機能に対応していると思います。



ご質問者がお示しになった数式
=WORKDAY($D$1,ROWS($B$2:$B2),$F$3:$F$23)・・・①
はスピル機能を使用せず、A2に数式を入力して、下方向へコピーするためのものだと思います。

そうではなく、A2セルに入力するとスピル機能により、A2セル以下に1年分の営業日が表示される数式をお示ししたいと思います。

既に、①の数式の意味については、zongaiさんが、詳細に説明されておられます。
私がお示しするスピル機能バージョンと比較しながら、もう一度数式の意味を確認いただければ幸いです。

最初に祝日一覧を作成します。作成方法はいろいろあると思いますが、
https://shukujitsu.net/years/2025/
などのサイトからコピーしてEXCELに貼り付けして整形するのが簡単だと思います。
続いて、祝日一覧をテーブル化します。以下のURLを参考にしてください。
https://www.tku.ac.jp/iss/guide/classroom/tipspc …
さらにテーブルの名前を「祝日一覧」に変更します。以下のURLを参考にしてください。
https://www.officeisyours.com/entry/2020/10/11/1 …
その上で、A2セルに

=IFERROR(WORKDAY(D1,ROW(1:250),祝日一覧[日付])/(YEAR(WORKDAY(D1,ROW(1:250),祝日一覧[日付]))=YEAR(D1)),"")・・・②

という数式を入れます。

これで、スピル機能によりA2セル以下に1年分の営業日が表示されます。
なお、D1セル、A2以下のA列のセルおよびテーブル「祝日一覧」の日付の表示形式はユーザー定義で「yyyy/mm/dd」としておくとレイアウトが揃って見やすくなります。
「Excelについて教えてください。」の回答画像4
    • good
    • 0
この回答へのお礼

助かりました

お礼日時:2025/03/01 10:29

こんばんは



WORKDAY関数の原理は他の方の解説にある通りです。
で、「日数」に当たる部分の指定を、「1、2、3・・・」と増やしていけばお求めの結果になることは理解できると思います。

「1、2、3・・・」と増やしてゆく仕組みとして、ご提示の式では
>ROWS($B$2:$B2)
を使っていますけれど、もっと簡単にして
 =WORKDAY($D$1,ROW(B1),$F$3:$F$23)
でも可能です。
ROW関数は行番号を返す関数なので、試しにどこかのセルに
 =ROW(B1)
を入力して、下方にフィルコピーしてみれば、「1、2、3・・・」となることがわかるでしょう。
(ちなみに、ROWS関数は指定した範囲の行数を返す関数です)

また、ご提示の関数の場合、「開始日」の翌営業日からの一覧が表示されますが、開始日を含めて表示したいような場合には、「1、2、3・・・」を「0、1、2・・・」となるようにすれば良いので、入力する式を
  =WORKDAY($D$1,ROW(B1)-1,$F$3:$F$23)
のように変えれば良いですね。


一方で、最近ではスピル機能が使えるバージョン(=Office365等)もありますので、そちらをお使いの場合であれば・・
例えば、A2セルに
 =WORKDAY(D1,ROW(B1:B250),F3:F23)
の式を入力すれば、250日分の営業日が下方にスピルされます。
(フィルコピーする必要はありませんし、コピーしないので絶対参照の $記号も不要になります)

上式は「250日分」固定ですが、表示する日数も可変にしたければ・・
(式を変更すれば、もちろん変えられますが)
例えば、D2セルに日数を入力することにして(=100など)A2セルの式を
 =WORKDAY(D1,ROW(OFFSET(B1,,,D2)),F3:F23)
としておけば、D2セルで指定した日数分の営業日がスピルされるようになります。
    • good
    • 0
この回答へのお礼

分かりやすく丁寧にご説明くださりありがとうございました。

お礼日時:2025/03/01 10:31

AIの回答


>ROWS($B$2:$B2)
ここの部分。
加算する営業日の日数。ここでは、 ROWS($B$2:$B2) で計算されます。この部分は、B列の2行目から現在の行までの行数を返します。最初の行では1、次の行では2と増えていきます。
    • good
    • 0
この回答へのお礼

助かりました

お礼日時:2025/03/01 10:31

=WORKDAY($D$1,ROWS($B$2:$B2),$F$3:$F$23)の意味がよく分かっていま





=WORKDAY(開始日,日数,[祝日])
数式を入力しようとするとこのようなアシスト表示が出ると思います。

「【開始日】から土日と【祝日】を除いた【日数】日目の営業日」
を返す関数です。

【開始日】は、そのまま営業日カウントの基準となる日。
【祝日】、土日以外に営業日から除外する日付のリストを指定します。
ここまでは理解されていると思います。

添付画像を見ると、
A列には開始日以降の営業日を並べるのですよね。つまり、

A2には1営業日にあたる日
A3には2営業日にあたる日
A4には3営業日にあたる日
・・・

と続くわけで。
これを数式にすると

A2=WORKDAY($D$1,1,$F$3:$F$23)
A3=WORKDAY($D$1,2,$F$3:$F$23)
A3=WORKDAY($D$1,3,$F$3:$F$23)
・・・

と式の一部、『【日数】にあたる数字を増やしていかなければならない』のです。
式を下にコピーしてもこの数字は増えません。
これ、各セルごとに直接入力するのは手間ですよね。

この数字を、式のコピーだけで勝手に増えてくれるようにする方法はないか?
と考える必要があるわけです。

---------------------------------------------
そこで出てきたのがコレ。

ROWS($B$2:$B2)

これは、$B$2:$B2 の範囲の行数を取得するものです。
$B$2:$B2だと、範囲としてはB2セルだけなので1行です。
この式を下にコピーしていくと、絶対参照になっていない($のついていな)最後の2だけが増えていきます。

=ROWS($B$2:$B2)
=ROWS($B$2:$B3)
=ROWS($B$2:$B4)
・・・

それぞれの結果は、順に
$B$2:$B2 の範囲の行数は 1。
$B$2:$B3 の範囲の行数は 2。
$B$2:$B4 の範囲の行数は 3。
という結果となります。

実際に、適当なセルに
=ROWS($B$2:$B2)
を書き込んで下にコピーしてみると分かると思います。

★余談ポイント
数式でわからない部分だけ抜き出して実行してみる。
エラーが出る数式は外側にある関数を除外して残った式で実行してみる。
コレで疑問の解決につながることがあります。


…続き。
はい、これで、下にコピーすると数字が増えていく手段が見つかりましたね。
これををWORKDAY関数の【日数】部分に組み込んで、

=WORKDAY($D$1,ROWS($B$2:$B2),$F$3:$F$23)

という式が完成します。

---------------------------------------------
ちなみに、数字を増加するだけなら、
=ROWS($B$2:$B2)
に限らず
=ROWS($X$16:$X16)
でも同じです。()内の範囲の行数が増えるのは同じですから。

また、営業日一覧が添付していた画像のように2行目から始まるのであれば
=ROW()-1
とするのがシンプルでわかりやすいですね。
[この式が書いてある行]-1
という意味です。ROWS ではなく ROW です。

---------------------------------------------
この回答に添付した画像のように始めから連続した数字の列が用意されていれば、それをWORKDAYの【日数】として参照させ、
=WORKDAY($D$1,A2,$F$3:$F$23)
という式にもできます。
これだと関数が1つだけなので、数式への理解はしやすいかも知れません。
「Excelについて教えてください。」の回答画像1
    • good
    • 2
この回答へのお礼

より詳しく丁寧にご説明くださりありがとうございました。

お礼日時:2025/03/01 10:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A