• ベストアンサー

エクセル 週ごとの日数が出したい。

月曜から日曜までを1週とする場合の 週毎の日数が知りたいです。 C2 =DATE(2014,3,1) B6 =$A$2+1 C5 =TEXT(B5,"aaa") よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.7

 回答No.4です。  済みません、「2014年3月」等の様に、年月が入力されているセルとして参照しているセルが、回答No.4の関数においてはC2セルではなく、C3セルになっておりました。  後それから、C2セルに入力されている関数が、例えば、 =DATE(2014,3,2) 等の様に、その月の"1日以外の日付"を返す様なものとなっていた場合(表示だけは「2014年3月」のままになります)には、誤った日数を返してしまう事に、後から気付きました。  ですから、第1、第5、第6週の日付を求める関数を次の様に改良致しました。(第2週目、第3週目、第4週目の日数を求める関数に関しては変更する必要は御座いません) 【第1週目の日数を求める関数】 =IF(ISNUMBER(1/DAY($C$2)),7-WEEKDAY(TEXT($C$2,"yyyy/m"),3),"") 【第5週目の日数を求める関数】 =IF(ISNUMBER(1/DAY($C$2)/(TEXT($C$2,"yyyy/m/")&29-WEEKDAY(TEXT($C$2,"yyyy/m"),3))),MIN(7,DATE(YEAR($C$2),MONTH($C$2)+1,1)-DATE(YEAR($C$2),MONTH($C$2),29-WEEKDAY(TEXT($C$2,"yyyy/m"),3))),"") 【第6週目の日数を求める関数】 =IF(ISNUMBER(1/DAY($C$2)/(TEXT($C$2,"yyyy/m/")&36-WEEKDAY(TEXT($C$2,"yyyy/m"),3))),MIN(7,DATE(YEAR($C$2),MONTH($C$2)+1,1)-DATE(YEAR($C$2),MONTH($C$2),36-WEEKDAY(TEXT($C$2,"yyyy/m"),3))),"")  因みに、私の方法と、回答No.2様の方法の場合は、C2セルに年と月を指定する値が入力されてさえいれば、各週の日付をそれぞれ独立して求める事が出来ますので、質問者様の添付画像の例に写っている様な、B列の「日付」欄やC列の「曜日」欄等の、補助列は必要御座いません。  尚、私の方法では、存在しない週の所には何も表示されない様になっております。

yukhfs
質問者

お礼

ありがとうございます! 分かりやすい説明で助かりました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.6

添付の画像を無視させて頂きます。 >月曜から日曜までを1週とする場合の週毎の日数が知りたいです。 C2セルに月の初日が入力されていることを条件とします。 第1週の日数はその月の8日から初日のWEEKDAY関数からの返り値を差し引けば良いでしょう。 E5=8-WEEKDAY($C$2,2) 第2週から第4週は7日の固定となります。 第5週以降は次の式で算出できます。 質問の例では第6週まであります。 E9=IF(SUM(E$5:E8,7)<DAY(EOMONTH($C$2,0)),7,IF(SUM(E$5:E8)=DAY(EOMONTH($C$2,0)),"",WEEKDAY(EOMONTH($C$2,0),2))) Excel 2013で検証しましたがExcel 2007でも同様に算出できると思います。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんにちは! すでに色々回答は出ていますので、参考程度で・・・ 作業用の列を使う方法です。 すでに数式をお考えのようですので、余計なお世話かもしれませんが、 ↓の画像で B5(セルの表示形式はユーザー定義から d としています)に =IF(MONTH(C$2+ROW(A1)-1)=MONTH(C$2),C$2+ROW(A1)-1,"") C5セルに =IF(B5="","",TEXT(B5,"aaa")) という数式を入れ、B5・C5を範囲指定 → C5セルのフィルハンドルで31日までの35行目までオートフィルでコピー! 作業列のG4セルには単に =ROW() G5セルに =IF(OR(B5=EOMONTH(C$2,0),C5="日"),ROW(),"") という数式を入れ35行目までコピーしておきます。 最後にE5セルに =IFERROR(SMALL(G:G,ROW(A2))-SMALL(G:G,ROW(A1)),"") という数式を入れオートフィルで下へコピー! これで画像のような感じになります。m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 第1週目の日数を求める関数の一例は =IF(ISNUMBER(1/DAY($C$3)),7-WEEKDAY($C$3,3),"") です。  第2週目、第3週目、第4週目の日数を求める関数一例は =IF(ISNUMBER(1/DAY($C$3)),7,"") です。  第5週目の日数を求める関数一例は =IF(ISNUMBER(1/DAY($C$3)/(TEXT($C$3,"yyyy/m/")&29-WEEKDAY($C$3,3))),MIN(7,DATE(YEAR($C$3),MONTH($C$3)+1,1)-DATE(YEAR($C$3),MONTH($C$3),29-WEEKDAY($C$3,3))),"") です。  第6週目の日数を求める関数一例は =IF(ISNUMBER(1/DAY($C$3)/(TEXT($C$3,"yyyy/m/")&36-WEEKDAY($C$3,3))),MIN(7,DATE(YEAR($C$3),MONTH($C$3)+1,1)-DATE(YEAR($C$3),MONTH($C$3),36-WEEKDAY($C$3,3))),"") です。

全文を見る
すると、全ての回答が全文表示されます。
  • chie65535
  • ベストアンサー率44% (8566/19463)
回答No.3

追記。 ANo.1の回答の方が簡単ですが、ANo.1の回答は、1~3週目の日数が判らないと4週目の日数が判らない、1~4週目の日数が判らないと5週目の日数が判らない、1~5週目の日数が判らないと6週目の日数が判らないので、単独では計算できません。 当方の回答は複雑ですが、その代わり、それぞれを単独で計算できます。 あとANo.1の回答は「4週目の日数」を計算してますが、4週目の日数は「常に7日」なので計算する必要はありません。 一応、2010年1月~2037年12月の28年分で検証しましたが、どちらも答えが一致しました(曜日と日付の組み合わせは28年周期で循環するので28年分だけ試せばよい)

全文を見る
すると、全ての回答が全文表示されます。
  • chie65535
  • ベストアンサー率44% (8566/19463)
回答No.2

1週目は =MOD(8-WEEKDAY(TEXT(C2,"yyyy/mm/")&"01"),7)+1 の式で計算できます。 2~4週目は「7」で固定です。 問題は、5、6週目。月によって、4週しかなかったり、5週しか無かったり、6週あったりします。 その月が何週あるのかは「末日の週番号から初日の週番号を引く」事により求められます。 最後の週(5週目か6週目のどちらか)は「翌月の初日の曜日」から計算できます。 5週目は =CHOOSE(WEEKNUM(TEXT(DATE(YEAR(C2),MONTH(C2)+1,1)-1,"yyyy/mm/dd"),2)-WEEKNUM(TEXT(C2,"yyyy/mm/")&"01",2)-2,0,MOD(WEEKDAY(TEXT(DATE(YEAR(C2),MONTH(C2)+1,1),"yyyy/mm/dd"))+4,7)+1,7) の式で計算できます。 6週目は =IF(WEEKNUM(TEXT(DATE(YEAR(C2),MONTH(C2)+1,1)-1,"yyyy/mm/dd"),2)-WEEKNUM(TEXT(C2,"yyyy/mm/")&"01",2)<>5,0,MOD(WEEKDAY(TEXT(DATE(YEAR(C2),MONTH(C2)+1,1),"yyyy/mm/dd"))+4,7)+1) の式で計算できます。 なお「5週目が無い(4週しかない)」や「6週目が無い(5週しかない)」と言う場合、存在しない週は「0」になります。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

当月1,2日が日曜の場合、第6週がある可能性もあります。 E5=8-WEEKDAY(DATE(YEAR($C$2),MONTH($C$2),0)) E6=7 E7=7 E8=MIN(DAY(DATE(YEAR($C$2),MONTH($C$2)+1,0))-SUM(E5:E7),7) E9=MIN(DAY(DATE(YEAR($C$2),MONTH($C$2)+1,0))-SUM(E5:E8),7) E10=MAX(DAY(DATE(YEAR($C$2),MONTH($C$2)+1,0))-SUM(E5:E9),0)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excelカレンダーに集計表

    この掲示板にて、カレンダーの作り方を拝見しました。 カレンダー日付の下に毎日累計値を入れていき、 その下に当日分の使用量が出るようにしたいのですが、 未熟者の為、月の変わり目が流動的でうまく式がたてれません。 ご教授の程よろしくお願いします。 今回参考にさせて頂いたカレンダーの元は下記のものです tazsan転用申し訳ありません。 D1に年(2004)、D3に月(12)と入力します。 一行あけてA5からG5までに、日・月・火・・・と曜日を A6 第一週日曜日 =IF(WEEKDAY(DATE($D$1,$D$3,1))=1,1,"") B6 第一週月曜日 =IF(ISNUMBER(A6),A6+1,IF(WEEKDAY(DATE($D$1,$D$3,1))=2,1,"")) C6 第一週火曜日 =IF(ISNUMBER(B6),B6+1,IF(WEEKDAY(DATE($D$1,$D$3,1))=3,1,"")) D6 第一週水曜日 =IF(ISNUMBER(C6),C6+1,IF(WEEKDAY(DATE($D$1,$D$3,1))=4,1,""))   ・   ・  以降、 A7 第二週の日曜日 =G6+1 B7 第二週の月曜日 =A7+1 C7 第二週の火曜日 =B7+1 ・・・という風に、第四週の土曜日までは前日に+1する計算式を書きます。 第五週は最終週なのですこし違います。 A10 第五週の日曜日 =IF(G9+1<=DAY(DATE($D$1,$D$3+1,1)-1),G9+1,"") B10 第五週の月曜日 =IF(ISNUMBER(A10),IF(A10+1<=DAY(DATE($D$1,$D$3+1,1)-1),A10+1,""),"") C10 第五週の火曜日 =IF(ISNUMBER(B10),IF(B10+1<=DAY(DATE($D$1,$D$3+1,1)-1),B10+1,""),"") D10 第五週の水曜日 =IF(ISNUMBER(C10),IF(C10+1<=DAY(DATE($D$1,$D$3+1,1)-1),C10+1,""),"")         ・         ・ これで、年と月を書き換えると日付が自動表示されるようになります

  • エクセル 週ごとの数値抽出

    月曜日から日曜日までの出荷数の合計を出すにはどうすればよいのでしょうか? 今のところ、セルR2C3の月の数値を変えると日付と曜日が出てくる所まで出来ました。 セルR6C2の部分の関数は「=R2C3+1」、セルR6C3の関数は「=TEXT(RC[-1],"aaa")」となっています。 来月からも使いたいのでセルR2C3の数値を変えるだけで反映されるよう表示させたいです。 よろしくお願いします。

  • excelで合計日数の出し方を教えて下さい。

    はじめまして、 今まではdatedifを使って日数を求めることができました。 この場合 例、セルa1に開始日とb1終了日を入れればc1に合計日数が計算されました。 そこで新たにセルごとに年、月、日を入力して同じように合計日数が計算されるようにしたいのです。 例、セルa1に年(2009)、a2に月(3)、a3に日(6)=開始日   セルb1に年(2009)、b2に月(4)、b3に日(28)=終了日   セルc1に合計日数が計算(54)日数 となるように作りたいのですがどなたか教えて下さい。 宜しくお願いします。

  • エクセルで日数の出し方

    例えばA列に本を貸し出した日、B列に戻ってきた日が入力されているものを、C列に何日間貸し出していたかの日数が出るような数式を入れたいのですが、A列-B列としても日数が表示されません。どうしたらよいのでしょうか、教えてください。

  • Excelで特定期間の月・週ごとの日数を出したい

    Excel2016を使用しています。 特定期間の月ごと、かつ、週ごと(月曜始まり)の日数を出したく、 計算式を教えていただけませんでしょうか。 【例】 ・セル記載内容 A1:2020/12/16 B1:2021/1/15 ・出力したい内容 B3:0 (12/1-12/6:該当なし) B4:0 (12/7-12/13:該当なし) B5:5 (12/14-12/20:12/16-12/20が該当) B6:7 (12/21-12/27: 12/21-12/27が該当) B7:4 (12/28-12/31: 12/28-12/31が該当) B8:3 (1/1-1/3:1/1-1/3が該当) B9:7 (1/4-1/10:1/4-1/10が該当) B10:5 (1/11-1/17:1/11-1/15が該当) B11:0 (1/18-1/24:該当なし) B12:0 (1/25-1/31:該当なし) 集計対象が多いため、手作業でのカウントは途方もない状況でして、 計算式で算出できますと大変助かります。 よろしくお願いいたします。

  • エクセルで隔週表示したいのですが・・

    現在年月日を一月の表でA列に曜日を 入れると1行に「◎」を表示させていますが もう一項目B列を追加して1.3(第一第三) などの週を任意で選択して隔週表示出来るように したいのですが分かりませんのでご教授いただきたく よろしくお願い致します A1=2016(年) A2=12(月) B2=DAY(A203) から AF2=IF(B233=31,31,"")(日) A203=DATE(A1,A2,1) から A233=A232+1 月末の判定 A3=月水金 (曜日の指定) (計算式) B3=IF(COUNTIF($A3,"*"&TEXT(DATE($A$1,$A$2,$B$2),"aaa")&"*")>0,"◎","") から AF3=IF(COUNTIF($A3,"*"&TEXT(DATE($A$1,$A$2,$AF$2),"aaa")&"*")>0,"◎","")

  • 有給休暇付与日数

    パート勤務で月曜日8時間労働、火曜は半ドンで4時間労働 の場合、週の所定労働日数は 1.5日となります。①この場合、年次有給休暇の付与日数表は週所定労働日数ではなく、1年間の週所定労働日数にあてはめて、付与日数をきめるのでしょうか。②土曜日と日曜日のいずれかを法定休日と定めている場合、土曜日と日曜日に、このパート社員が働いた場合には休日の割増賃金はつくのでしょうか。宜しくお願い致します。

  • エクセル、日曜日だけ除いた平均値の求め方。

    よろしくお願いします。 Aには日付、BにはTEXT(曜日)Cには数字 8/1 日 1 8/2 月 10 8/3 火 3    :    : そこで、日曜日だけを除いた、平均値と 月曜日だけの平均値を出したいと思っています。 TRIMMEAN関数を使いなんとかやろうとしてるのですが・・なかなかできません。 よろしくお願いします。

  • 第二、第四火曜日にA、第四金曜日にBと

    いつもお世話になります。 WIN7 EXCELL2010 です。 作成しているカレンダーに、 今月(6月)の場合 6/10 6/24 に「A」 6/27   に「B」 と表示させたいのですがご指導いただけませんでしょうか。 よろしくお願いいたします。 参考に C3 =IF(COUNT(A1,B1)<2,"",DATE(A1,B1,1)) C4 =TEXT(C3,"aaa")

  • EXCELでの日数計算の方法

    こんにちは。いつも大変お世話になります。 申し訳ありませんが、また皆様方のお知恵を貸して下さい。 条件は以下のとおりです。 A1セルに「与えられた日数」単位は日(整数) B1セルに「使用した日数」単位は日(小数点1位) C1セルに「使用した日数」単位は時間(整数) D1セルに「残りの日数」単位は日(小数点1位) E1セルに「残りの日数」単位は時間(整数) A1セルにあらかじめ任意の数字をいれておく。 B1、C1セルに使用した日数を入れる。 D1、E1セルに残りの日数を表示させる。  ※1日を8時間とする。0.5日(0.2や0.6の入力はありま  せん。0.5日=4時間です)と入力する場合もある。 例えばA1セルに20日が入力されていて、B1セルに1.5日、C1セルに3時間を入力すると、D1セルに17.5日、E1セルに5時間を表示させる。 大変ご面倒な事をお願いしておりますが、何卒よろしくお願い致します。

このQ&Aのポイント
  • Brother製品のインストール画面で「製品が見つかりませんでした」と表示され、無線で接続しているプリンタ名が表示されないという問題について相談いたします。
  • Windows11を使用し、無線LANで接続している環境です。
  • 関連するソフト・アプリや電話回線の種類は特にありません。
回答を見る

専門家に質問してみよう