• 締切済み

エクセルで日付から特定曜日を除いた数(稼働日数等)

B列3行目以降    C列  日付        日付間隔 H23年6月21日(火)   - H23年6月22日(水)    1  ・・・B4-B3   H23年8月2日(火)    41 ・・・B5-B4            H23年8月31日(水)    29 ・・・B6-B5        ・           ・       ・・・・今は単純に日付の間隔    ・           ・    ・           ・ 日付入力は2011/6/21 B列表示形式はge"年"m"月"d"日"(aaa) 日付間隔は=IF(OR(ISBLANK(B3),ISBLANK(B4)),"",DATEDIF(B3,B4,"d")) の式をネットで調べて いれています。 行いたいのは、B5---B4(8月2日から6月22日)間などの各上下間の日曜日などの特定曜日を除いた 数値(ここでは実稼働日数)を出したいです。 特定曜日が日曜日以外に土曜日と日曜日とか祝日とかもありますが、 ・・・・かなり複雑かなと思います(別シートにカレンダー表などが必要かと)。 とりあえずは毎週の日曜日です。 日付の入力日は不特定日です。行間に空白はありません。 エクセル素人につき<WEEKDAY(シリアル値,種類)>などをどのように利用して 良いか分かりません。エクセル2000です。 質問内容がお分かりにくいかと思いますが アドバスの程よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

判りにくい質問表現と感じる。 日曜・土曜など考えずに、指定した日を除いたところの、期間(XX日からYY日まで)日数を出したいのか。 省きたい日の性格(というか名称、例、祝日とか土曜日とか)をはっきり書いて質問すること。 名称では頼りにならない(土曜でもカウントする日がある)のなら別シートにでも、除く日付一覧を作ったらどうだ。 その表の作成は面倒だがどのようにも対応できる。 ーー 除くのは日曜と祝日か、それも全部ではないならないで、はっきり書くこと。 例えば Sheet4に除外する日付を列挙する 2011/6/29 2011/7/23 2100/7/30 2011/8/11 ーー 例データとして Sheet3でB3:B5として 2011/6/22 39 2011/8/2 28 2011/8/31 C3 の式は =B3-B2-SUMPRODUCT((Sheet4!A2:A10>=B2)*(Sheet4!A2:A10<=B3)*1) を入れて下方向に式を複写する。 ーー 期間の指定曜日の数について http://www.geocities.jp/chiquilin_site/data/071101_specific_day.html に解説が有る。 土曜は必ず稼動するなら、上記除外表から日曜日の指定は省いて、上記の計算によって、期間内日曜日の数を引けば良い。 除外表が少なくなって、祝日+例外休日だけとかになる。

hirota3310
質問者

お礼

お礼が大変遅くなりました。 アドバイスいただいた内容参考にさせて頂きます。 質問内容に「稼働日数」と「日にち間隔」を記入していました(意味が違いますね)ので 一度、締め切って再度質問させて頂きます。 ありがとうございました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

NETWORKDAYSでは土日と祝日を除いた稼働日を計算することができますが、今回のご質問のように、すべての土曜日が休日にならない場合は適用することができません。 このようなケースでは、条件を自由に設定できる以下のような配列を使用した数式を利用する必要があります。 例えば、日曜以外(土曜日や祝日など)の休日リストに「休日リスト」という名前が定義されているなら(もちろん絶対参照の数式でもOKです)、以下の式を入力して下方向にオートフィルします。 =SUMPRODUCT((WEEKDAY((B3+ROW($A$1:$A$30)-1))<>1)*(B3+ROW($A$1:$A$30)-1<=B4)*((COUNTIF(休日リスト,B3+ROW($A$1:$A$30)-1)=0))) 上記の数式は、日付間隔が最大30日までを想定した式になっていますので、それ以上長い間隔がある場合は30の数字を適宜変更してください。 また、NETWORKDAYS関数と同様に、開始日と終了日の両方をカウントする数式にしていますので、元の数式のように単純な引き算(稼働日ではなく日付間隔)で良いなら全体から1を引いた数式にしてください。

hirota3310
質問者

お礼

お礼が大変遅くなりました。 アドバイスいただいた内容参考にさせて頂きます。 質問内容に「稼働日数」と「日にち間隔」を記入していました(意味が違いますね)ので 一度、締め切って再度質問させて頂きます。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

土曜、日曜、祝日などを除いた日数を計算することのできる関数としてWORKDAY関数があります。日曜だけを除いた計算よりも簡単に処理できますね。 祝日などの日付については例えばシート2のA1セルからA100セルの間に入力されているとします。 そこで、お求めの表のB4セルには次の式を入力して下方にオートフィルドラッグすればよいでしょう。 =IF(C4="","",WORKDAY(B$3,SUM(C$4:C4),Sheet2!A$1:A$100))

hirota3310
質問者

お礼

お礼が大変遅くなりました。 アドバイスいただいた内容参考にさせて頂きます。 質問内容に「稼働日数」と「日にち間隔」を記入していました(意味が違いますね)ので 一度、締め切って再度質問させて頂きます。 ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

=IF(OR(ISBLANK(B3),ISBLANK(B4)),"",NETWORKDAYS(B3,B4,祭日))  NETWORKDAYS関数・・・土曜、日曜及び祭日を除いた2つの日付の日数を求める関数 http://excel.onushi.com/function/networkdays.htm ※この関数は、「ツール」「アドイン」で「分析ツール」にチェックが必要です。

hirota3310
質問者

お礼

お礼が大変遅くなりました。 アドバイスいただいた内容参考にさせて頂きます。 質問内容に「稼働日数」と「日にち間隔」を記入していました(意味が違いますね)ので 一度、締め切って再度質問させて頂きます。 ありがとうございました。

関連するQ&A

  • エクセル日にち間隔で日曜日を除いた値

    B列3行目以降        C列        D列             E列 (日付)         (日にち間隔数)    (日曜日除く間隔数)  (データ値)  H23年6月22日(水) H23年6月30日(木)      8           7 H23年7月1日(金)      1           1 H23年8月1日(月)      31           26 H23年8月28日(日)      27           24(28日の日曜日は含む) H23年9月30日(金)      33           28 日付入力は2011/6/21 B列表示形式はge"年"m"月"d"日"(aaa) 日付間隔は=IF(OR(ISBLANK(B3),ISBLANK(B4)),"",DATEDIF(B3,B4,"d")) の式を ネットで調べ、B列に不特定日を入力し、各、日にち間隔の数値を出しています。 ・行いたいのは  データの記録表を作成していますが、B列に不特定日を入力し、日曜日だけを除いた  日にち間隔の数値をD列に出したいです。  但し、B列に入力した日付が日曜日の場合は、その日も含みます。 エクセル素人につき、 <WEEKDAY関数は、曜日に対応した数値を返します。数値と曜日の対応> などをどのように利用して良いか分かりません。 エクセルは2000です。 アドバスの程よろしくお願いします。 過去(質問番号:6992865)で同じような質問させていただきましたが、質問内容が 悪く、締め切らせていただいてます。 (ご回答頂いた方々ありがとうございました。)

  • エクセル2003 日付を入れると曜日が入る関数

    A列に日付を入れると B列に曜日(日/月/火の様な)が入るような関数式はありますか。 教えてください。 宜しくお願い致します。

  • エクセル 曜日

    エクセルで曜日を表示する関数で悩んでいます。 =IF(ISBLANK(B1),"",DATE(2013,A1,B1)) こんなふうに入れたのですが、「41374」と表示されます。 A1には「4」、B1には「10」と入れたので、2013年4月10日の曜日、つまり「水」を表示させたかったのですが… 意味不明な数が出てきてしまいました。 別のシートでは、ちゃんと曜日が表示されているので、数式に誤りはないと思うのですが。 どうすればよいのでしょうか? 回答よろしくお願い致します。

  • エクセルで2013年分の曜日の表示がズレてしまう。

    エクセルについての質問です。 B1に年(2013) D1に月(1)   を入力し、 A10から縦に日付けが入るようにし、 その横のB10以降B列に曜日が入るような表を作っています。 表示は A10・・・1 B10・・・月 A11・・・2 B11・・・火 A12・・・3 B12・・・水 というような形です。 数式は A10に =DATE(B1,D1,1) B10に =A10 A11に =A10+1 B11に =A11 セルの書式設定はA列が ユーザー定義 d B列が ユーザー定義 aaa にしています。 この方法で2012年までは曜日の自動入力(?)にズレはなかったのですが、 2013年分からは曜日がズレてしまい、 本来2013年1月1日は火曜日なのですが、表示されるのは日曜日になってしまいます。 どのようにしたら直りますか? ちなみにエクセルが2010を使っています。 どうぞよろしくお願いします。

  • エクセル 曜日の色分け

    こんにちは。 エクセル2007を使用しています。 日付(A列)を入力して、ユーザー定義から曜日(B列)は自動で表示されるように出来ました。 さらに、このB列の曜日について、土曜日は青色、日曜日は赤色で自動表示(月~金は黒のまま)させたいのですが、どのように操作したらよいのでしょうか。 教えてください。よろしくお願いします。

  • EXCEL2003 日付関数で曜日を入れたい

    宜しくお願いします。EXCEL2003です。 シート1   平成20年4月 シート2   平成20年5月 シート3   平成20年6月 …       … 平成21年3月までのシート1~シート12まであります。 日付関数を使って曜日を入れたい。そして、土曜日・日曜日・休日のところのA列(日)B列(曜日)C列(摘要)の3列を塗りつぶしたいのですが出来ますか。宜しくお願いします。 シート1の A1に4月と入っています。 A2~A32まで1~30まで日にちが入っています。 B2~B32のところに平成20年4月の曜日を入れたい どのようにしたらよいのでしょうか。 シート2以降はシート1の複写です。ですから同じ位置に曜日が入るようになっています。 宜しくお願いします。

  • エクセルで日付同日連続

    B列4行目以降 (同日が2行連続した日付)に、例えば月の初めを入力すると 下記のように同日が連続(ここでは2行分)させる方法はどのようにしたら よろしいでしょうか? 1,日付は月の初めから月末まで。 2,日付は週の初め(月曜日)から1週間分(次週の月曜日)。 3,2,の日付は不特定日(但し、月曜日から)です。  等々といろいろ条件が出来てしまいますが、 ここでは1,から3,を行いたいです。 B列4行目以降の日付 H23年9月1日(木) H23年9月1日(木)・・・・上行と同日 H23年9月2日(金) H23年9月2日(金) H23年9月3日(土) H23年9月3日(土) H23年9月4日(日) H23年9月4日(日) H23年9月5日(月) H23年9月5日(月) H23年9月6日(火) H23年9月6日(火) H23年9月7日(水) H23年9月8日(木) H23年9月8日(木)    ・    ・    ・ エクセル2000です。 3行分など自由行にしたい場合は、改めて質問させていただく方がよろしいいでしょうか? 初心者ですがよろしくお願いします。

  • エクセルで特定の曜日の日数を調べる。

    毎回、適切なご回答ありがとうございます。 以下のことを教えてください。 出勤表を作っています。 A列に日付 B列に曜日 C列に出勤時間を記入します。 そこで教えていただきたいのですが、 例)水曜日の出勤日数X1,000円と土曜日の出勤日数X800円  というのを関数であらわすとしたらどうしたらいいのか分かりません。 どうぞよろしくお願いします。

  • 特定の曜日の時に、特定の表示がしたい

    XP、エクセル2010です  A1にTODAY関数で今日の日にちを表示しています。 平成○年○月○日(○)と表示させています。 特定の曜日の時…、例えば(月)(水)(金)の時に B1に「測定日」と表示させるには、どうしたらいいでしょうか? また(火)(木)(土)の時には、別の表示をさせることも可能でしょうか?

  • エクセルで日付・曜日の入った表の作成方法が知りたい

    エクセルで毎月の曜日と日付が入った表を作成したいです。 5月 1  火 2  (水) 3  (木) 4  (金)   5  (土) 6  (日)    ・    ・    ・ 31 木 エクセル初心者です。 ↑上記のように、毎月、日付と曜日が入った表を作成しています。 この表は、土日・祝は色を赤色にし、()をつけてわかりやすくしなければなりません。 毎回手書きで作成しているのですが、簡単に作成できる関数などはありませんか? たとえば、2012年5月などと入力したら自動的に日付と曜日が入り、土日祝は赤色で()がつくように したいんですが、難しいでしょうか? 回答よろしくお願いいたします。

専門家に質問してみよう