アプリ版:「スタンプのみでお礼する」機能のリリースについて

お尋ねします。

稼働日日数の計算をしたいと思っています。

ただし、土曜日は営業日なので、
日曜日と祝日だけを除いた日数の計算をしたいのです。

例)  12/23~1/15 の 日曜と特定の休日(12/29~1/5)除いた日数の計算

networkday等つかうと、土曜日も休日となってしまうため、困っています。

どなたか知恵を貸してくださいませんでしょうか?

よろしくお願いいたします。

A 回答 (6件)

>求めているものにすごく近いのですが、


私の質問がわかりにくかったようなので、新たに質問しなおしました。

同じ質問で別スレッドを立ち上げるのは、皆さんからの回答が無駄になることがあるので、好ましくありません。

このようなケースでは新しく質問するのではなく「求めているもの」を具体的に補足説明するようにしましょう。
    • good
    • 0
この回答へのお礼

すみません!! でもご協力ありがとうございます

お礼日時:2011/02/28 13:00

NO2です。


>そうですね、どうやら別シートに休日を集めて、・・・・
 ⇒違います、休日のみではなく1/1から12/31を別シートに設定するという事です。
    • good
    • 0

A1セルに開始日、B1セルに終了日が入力され、特定の休日に「休日リスト」と名前が付けられているなら(あるいはそのセル範囲を絶対参照)、以下の式で日曜と休日を除外した期間の日数が求められます。



=SUMPRODUCT((WEEKDAY(A1+ROW($A$1:$A$300)-1)>1)*(A1+ROW($A$1:$A$300)-1<=B1)*(COUNTIF(休日データ,A1+ROW($A$1:$A$300)-1)=0))

上記の式は300日後までの数式になっていますので、その期間を超える場合などは適宜数値を変更してください。

この回答への補足

求めているものにすごく近いのですが、
私の質問がわかりにくかったようなので、新たに質問しなおしました。

http://okwave.jp/qa/q6556329.html

補足日時:2011/02/28 11:49
    • good
    • 0

最も分かり易くて簡単な方法は作業列を設けて対応することでしょう。


例えば2010年12月1日から以降の日曜日の日付をデータベースとしてシート2に準備するとして、シート2のA1セルには2010/12/1と入力します。その後にシート2のB1セルからB29セルの間には特定の休日を、例えば2010/12/29から2011/1/5までの日付や、祝日を、入力します。それからB30セルには次の式を入力して下方にオートフィルドラッグします。

=IF(A$1-WEEKDAY(A$1)+1+ROW(A1)*7<=A$2,A$1-WEEKDAY(A$1)+1+ROW(A1)*7,"")

B20セル以降にはA1セルで指定された日付以降における日曜日となる日付が表示されます。

そこでシート1のA1セルに例えば2010/12/23と入力し、B1セルに2011/1/5と入力し、その間の休日の日数をC1セルに表示させるのでしたらC1セルには次の式を入力します。

=COUNTIF(Sheet2!B:B,">="A1)-COUNTIF(Sheet2!B:B,">"B1)

この回答への補足

早速のお返事ありがとうございます!

指示通り試してみましたが、以下の時点で言われたような表示がされないのですが。。。

>B20セル以降にはA1セルで指定された日付以降における日曜日となる日付が表示されます。

補足日時:2011/02/28 11:32
    • good
    • 0

一例です。


ワークシート関数で行う方法として、別表に2年分の日付列と日数列(1は営業日、0は休みとします)を
設定、開始日-終了日の複数条件にその範囲の日数列を計数しては如何でしょうか。
尚、関数例については、SUMPRODUCT関数、SUMIFS関数(エクセル2007以上)名で検索してみて下さい。
    • good
    • 0
この回答へのお礼

早速、ありがとうございます!

そうですね、どうやら別シートに休日を集めて、
指定してあげるというのが、正攻法なのですね。

お礼日時:2011/02/28 11:50

直接の回答にならないかもしれませんが、私が実施している方法について回答します。



特定日の求め方ですが、休日用の別シートを作成します。(今回は『設定』シートとします)
で、計算したいシートに非表示列を作成します。
非表示列に『=IF(COUNTIF(設定!$C$29:$C$51,A10)=0,1,0)』と入力します。
あとは、非表示列の合計をとれば日数となります。

=IF(
 COUNTIF(         下記範囲内に値があれば1以上となる。
  設定!$C$29:$C$51,  休日の範囲を設定(今回は設定シートのC29~C51に設定)
  A10            調べたい日付
 )=0             休日として設定されていない場合
 ,1              1とする
 ,0)             休日として設定されている場合は0とする。
となります。

日曜日は『WEEKDAY』の関数を使用し、1なら日曜日となりますので
『=IF(WEEKDAY(A10)=1,1,0)』とすれば日曜日のみ求められます。
結合後(『=IF(AND(COUNTIF(設定!$C$29:$C$51,A35)=0,WEEKDAY(A35)<>1),1,0)』)

両方の式を結合すれば1フィールドで求められますが、
特定の日曜日が出勤になることなどもかんがられるので、別シートですべての休日を管理するほうがいいのでは?
と思います。(毎年メンテナンスは必要になりますけどね。)
    • good
    • 0
この回答へのお礼

ご丁寧に説明していただき、感謝しています。ありがとうございます。

質問の仕方が悪かったようなので、
再度質問をし直しました。 お時間があれば拝見ください。

http://okwave.jp/qa/q6556329.html

お礼日時:2011/02/28 11:52

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