【最大10000ポイント】当たる!!質問投稿キャンペーン!

エクセルについて質問です。

セルA1に開始日(例:2012/2/20)
セルC1に終了日(例:2012/5/12)を入力し、この期間の日数(○○日間)を
計算する方法を教えて下さい。
更にこの期間で、「土日祝日を除いた日数(平日のみの日数)」と
「日曜祝日を除いた日数(平日+祝日でない土曜日の日数)」を算出する方法も教えて下さい。

ちなみに作業日数を計算するのに、DAYS360関数を使ってみましたが、
1年を360日として計算するので、正確な日数になりません。
また、曜日や休日が絡むとどんな関数を使えば良いのか全くわかりません。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

>「土日祝日を除いた日数(平日のみの日数)」と「日曜祝日を除いた日数(平日+祝日でない土曜日の日数)」を算出する方法も教えて下さい。



土日祝日を除いた日数はNETWORKDAYS関数で求められます(祝日リストの範囲に「祝日リスト」と名前を付けるかセル範囲を指定)。

=NETWORKDAYS(A1,C1,祝日リスト)

日曜祝日を除いた日数は以下のような関数で求められます。

=SUMPRODUCT((WEEKDAY(A1+ROW($A$1:$A$100)-1)<>1)*(COUNTIF(祝日リスト,A1+ROW($A$1:$A$100)-1)=0)*(A1+ROW($A$1:$A$100)-1<=C1))
    • good
    • 1

回答No3です。

シート2のC1セルには次の式を入力して下方にオートフィルドラッグコピーしてください。

=IF(COUNTIF(B:B,DATE(A$1,1,7-WEEKDAY(DATE($A$1,1,1))+1)+(ROW(A1)-1)*7),"",DATE(A$1,1,7-WEEKDAY(DATE($A$1,1,1))+1)+(ROW(A1)-1)*7)
    • good
    • 0

シート1に開始日や終了日が有るとして、シート2には祝日や作業列を用意します。


シート2のA1セルには2012年なら2012と入力します。A2セルにはWEEKDAY関数で使う数値で土曜日を休みの日(祝日は除く)に含めない場合でしたら7と入力します。
そこでB1セルから下方にはその年の祝日を入力します。
C1セルには次の式を入力して下方にオートフィルドラッグコピーします。

=IF(COUNTIF(B$1:B29,IF(YEAR(DATE(A$1,1,1)+A$2-WEEKDAY(DATE(A$1,1,1))+IF(WEEKDAY(DATE(A$1,1,1))>A$2,ROW(A1)*7,(ROW(A1)-1)*7))=A$1,DATE(A$1,1,1)+A$2-WEEKDAY(DATE(A$1,1,1))+IF(WEEKDAY(DATE(A$1,1,1))>A$2,ROW(A1)*7,(ROW(A1)-1)*7),"")),"",IF(YEAR(DATE(A$1,1,1)+A$2-WEEKDAY(DATE(A$1,1,1))+IF(WEEKDAY(DATE(A$1,1,1))>A$2,ROW(A1)*7,(ROW(A1)-1)*7))=A$1,DATE(A$1,1,1)+A$2-WEEKDAY(DATE(A$1,1,1))+IF(WEEKDAY(DATE(A$1,1,1))>A$2,ROW(A1)*7,(ROW(A1)-1)*7),""))

これでC列には祝日を除いた土曜日の日付が表示されます。表示形式を日付にします。
そこでお求めの土日祝日を除いた平日のみの日数ですが次の式を入力します。

=NETWORKDAYS(A1,C1,Sheet2!B1:B50)

日曜祝日を除いた日数(平日+祝日でない土曜日の日数)につきましては次の式を入力します。

=NETWORKDAYS(A1,C1,Sheet2!B1:B30)+COUNTIF(Sheet2!C1:C60,">"&A1)-COUNTIF(Sheet2!C1:C60,">"&C1)

いずれの場合もセルの表示形式は標準にします。
    • good
    • 0

エクセルの日時は、1日を1とした、1900年1月1日0時から数えた、実数で記録されています。

(1秒は1÷24÷60÷60=0.000011574...で表します)
2つの日の期間を求めたいなら、単純に引き算するだけでOKです。
そこから、土日を除いた日数を求めたい場合は、WORkday関数です。
    • good
    • 0

日数 C1-A1



平日(稼働日)の日数を求める関数
http://www.nbcom.co.jp/PC-Support/FAQ/xls/ht/xls …

期間内の指定曜日の数
http://www.geocities.jp/chiquilin_site/data/0711 …
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル 関数で土日祝休日を除く日数を計算する

下記のようなエクセルシートにおいて
土曜、日曜、祝休日を除く日数を
関数で計算することはできせんでしょうか。

開始日・・セルA1
終了日・・セルA2
(セルの書式はいずれも"日付")
式を書くセル・・A4
---------------------------
A
12004/6/25
22004/7/31
3
4 25
---------------------------
*この場合求めたい値は "25"です。
・土日、海の日が除かれている
・開始日も 1 カウントする。
 (あとで 1 加えるのでもよいです)

よろしくお願いします。

Aベストアンサー

=NETWORKDAYS(開始日,終了日,祝日)で計算できます。
この関数は「ツール」「アドイン」「分析ツール」にチェックが必要です。

=NETWORKDAYS("2004/6/25","2004/7/31","2004/7/21")
で25になります。

各項目はセル参照でOKです。
祝日は範囲指定できます。

QExcelによる土日と祝祭日の算出関数

役所でExcelを人並みに使っていると思いますが,最近になって色々と関数を駆使しようと思いついたのが,Excelによる土日と祝祭日の算出関数です。色々と試みてみたのですが,全く×です。セルに対してどのようにすればいいのかヨロシクご教授ください。

Aベストアンサー

>Excelによる土日と祝祭日の算出関数です
質問の意味が2つに取れる(算出?)
(1)ある日を考えて土か日か祝日か判定する場合
   =WEEKDAY("2004/12/15")か=WEEKDAY(A1)のように
  聞いて
   土  7
   日  1
  かどうかで判る。コードの表現種類に他2種類ありま  す。
  祝日は各国固有で日本は年により移動するので、関数
  がなく、関数では判定できない。ユーザー関数を作る
  よりほかない。万年向けのものは難しそう。
(2)ある期間を考えて、土日祝日を除いて、それ以外が
  何日あるかを算出する関数
   NETWORKDAYS関数があります。
   NET(正味の)のWORKDAYの意味でNET   WORKのDAYではない。最後のSを落とさない   ように。
  ただし祝祭日は関数内に手入力で指定する。
  例えば=NETWORKDAYS("2004/12/15","2004/12/25",{"2004/12/23"})で7と出ました。
土日と祝祭日と重なっていてもOK。
「アドイン」関数なので、エラーが出る場合は組みこむ必要があります。
あとWORKDAY、DATEDIFを使えれば、日付関係はほぼ全てでしょう。

  
  

>Excelによる土日と祝祭日の算出関数です
質問の意味が2つに取れる(算出?)
(1)ある日を考えて土か日か祝日か判定する場合
   =WEEKDAY("2004/12/15")か=WEEKDAY(A1)のように
  聞いて
   土  7
   日  1
  かどうかで判る。コードの表現種類に他2種類ありま  す。
  祝日は各国固有で日本は年により移動するので、関数
  がなく、関数では判定できない。ユーザー関数を作る
  よりほかない。万年向けのものは難しそう。
(2)ある期間を考えて、土日祝日を除いて...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QExcel日程表:開始日~終了日を自動で色付けたい

Excelで月間スケジュールを作りたいと思います。

複数案件の一覧表にし、案件の開始日と終了日の期間のセルに、自動で色が付くようにしたいです。
条件付き書式で出来るでしょうか?
どのような条件付けをすれば実現できますか?
添付画像のような表をイメージしています。

<やりたいこと>
(1)左側に日付を入れると、右側のカレンダー部分に色がつく。(開始日から納品日まで)
(2)受注日と納品日は濃い色を付ける。
(3)月をまたがる日付を入れてもエラーにならない。

<目的>
各案件への取り組み期間が一見してわかるようにしたいです。
複数案件の進行が重複し、稼働の重たくなる時期を確かめるためです。


※2003でも2007でも使える書式設定でお願いします。
※私はマクロの知識が乏しい&Excelスキルの低い同僚にも使ってもらうため、マクロは使いたくありません。
※のちのち数式が崩れたときにも修復が容易なように、シンプルな数式だとありがたいです。
※条件付き書式以外の方法で、上記が解決できるならそれも教えてください。



ご教授ください。よろしくお願いします。

Excelで月間スケジュールを作りたいと思います。

複数案件の一覧表にし、案件の開始日と終了日の期間のセルに、自動で色が付くようにしたいです。
条件付き書式で出来るでしょうか?
どのような条件付けをすれば実現できますか?
添付画像のような表をイメージしています。

<やりたいこと>
(1)左側に日付を入れると、右側のカレンダー部分に色がつく。(開始日から納品日まで)
(2)受注日と納品日は濃い色を付ける。
(3)月をまたがる日付を入れてもエラーにならない。

<目的>
各案件への取り組み期間が一見...続きを読む

Aベストアンサー

こんばんは!
一例です。
カレンダーもシリアル値の方が何かと便利ですので、
余計なお世話かもしれませんが、↓の画像のようにカレンダーを作成します。
(開始日・受注日・納品日はすべてシリアル値で入力します)

A1セルに「西暦年」C1セルに「月」を入力します。
E3セル(セルの表示形式はユーザー定義から d とだけしておきます)に
=IF(MONTH(DATE($A$1,$C$1,COLUMN(A1)))=$C$1,DATE($A$1,$C$1,COLUMN(A1)),"")

E4セルに
=IF(E3="","",TEXT(E3,"aaa"))
という数式を入れ、E3・E4セルを範囲指定 → E4セルのフィルハンドルでAI列までコピーしておきます。
これで「年」・「月」を変更すればちゃんと大の月・小の月の対応ができます。

後は条件付書式で可能です。
Excel2003の場合
色を付けたいセル(E5セル以降)をすべて範囲指定
書式 → 条件付書式 → 「数式が」を選択 → 数式欄に
=OR(AND(E$3<>"",E$3=$B5),AND(E$3<>"",E$3=$D5))
として → 書式 → パターンから「赤」を選択

次に条件付書式 → 「追加」 → 上記と同様に数式欄に
=AND(E$3<>"",E$3>=$B5,E$3<=$D5)
として → ・・・ → パターンから「黄色」を選択
これで↓の画像のような感じになります。

※ Excel2007以降ですと、条件付書式 → 「数式を使用して・・・」という項目になると思います。
数式欄は同じ数式にします。

※ 条件が重複する場合は最初の条件付書式が優先されますので、
「受注日」・「納品日」の条件付書式を条件1にします。
Excel2007以降の場合は条件付書式の項目で上の行に表示されている方が優先されますので、
右側の▲▼で優先順位は自由に変更できます。

参考になりますかね?m(_ _)m

こんばんは!
一例です。
カレンダーもシリアル値の方が何かと便利ですので、
余計なお世話かもしれませんが、↓の画像のようにカレンダーを作成します。
(開始日・受注日・納品日はすべてシリアル値で入力します)

A1セルに「西暦年」C1セルに「月」を入力します。
E3セル(セルの表示形式はユーザー定義から d とだけしておきます)に
=IF(MONTH(DATE($A$1,$C$1,COLUMN(A1)))=$C$1,DATE($A$1,$C$1,COLUMN(A1)),"")

E4セルに
=IF(E3="","",TEXT(E3,"aaa"))
という数式を入れ、E3・E4セルを範囲指定 → E4セ...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルで日付の入力で、土日祝を自動的に抜いて、営業日だけ表示したい

 経理の仕事で、営業日だけの入力を一括で表示できる方法はないでしょうか?
こんな感じです......。
 1月5日
 1月6日
 1月7日
 1月11日
つまり、土日と祭日を抜いた表示を自動一括表示したいのです。わざわざカレンダーとにらめっこしなくても、エクセルはおりこうさんだから、できてもいいのではないか?と思うのですが、ヘルプで質問しても、満足のいく回答がなかったので、何卒よろしくお願いいたします。 

Aベストアンサー

No.2です。

ちょっと補足。
祝日一覧には、本当の祝祭日に限らず営業日から省きたい任意の日付を入れても構いません。
(会社の創立記念日や夏季・冬季休暇など)
逆に振替休日などはちゃんと入れておく必要があります。

QSUMIF関数で、条件に日付範囲で指定するには?

SUMIF関数で、条件に日付をいれたいのですが、
10日毎の範囲で集計を取るにはどうすればいいでしょうか。

A列に日付、B列に数値で
=SUMIF(A:A,"【2013/9/1~2013/9/10】",B:B) 
こんな感じで日付の部分が問題のところです。

date関数を入れてみると例えば9/3だけなど、一日だけの計算はできたのですが…
1~10,11~20、21~末日(31日)で合計するにはどう記入すればいいでしょうか。

Aベストアンサー

こんにちは。

2013/9/10までを求めて、2013/9/1以前を引けば答えが出ます。
=SUMIF(A:A,">=2013/9/10",B:B)-SUMIF(A:A,"<2013/9/1",B:B)

どうでしょうか。

Q指定した期間内での数値を合計する関数。

関数について教えて下さい。

SUMIF関数で条件に合うセル内の数値を合計するのは出来るのですが
その条件に更に条件を加えたいのですがやり方がわかりません。

下記の画像でD28セルに8/1~8/3までの間の海山商事さんの個数を
合計して表示させるにはどんな関数が入るでしょうか?

SUMIF関数で全期間の海山商事さんの個数を合計する事はできますが
期間を指定する関数がどうしてもわかりません。

初歩的な質問かもしれませんがよろしくお願いします。

Aベストアンサー

こんにちは。

8/3までの個数から8/1以前の個数を引けば8/1~8/3までの個数になります。

=SUMIF(B5:B20,"<=8/3",F5:F20")-SUMIF(B5:B20,"<8/1",F5:F20")

今回は8/1から始まっていて以前がないので、8/3までの個数を求めればSれが答えになります。

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Q数字を入力するとセルに色が付くようにするには

ウインドウズ7で、数字を入力するとセルに色が付くようにするにはどうすればよろしいでしょうか?

Aベストアンサー

Officeのバージョンが分かりませんので、excel2007・2010のバージョンでの操作方法を・・・。
(1) 条件付き書式をせってしたいセル範囲を選択(例えばA1~A10までを選択)
(2) 「ホーム」タブ→「スタイル」グループ内の「条件付き書式」をクリック
(3) 「新しい書式ルール」を選択
(4) ルールの種類から「指定の値を含むセルだけを書式設定」を選択
(5) 下方向の「セルの値▼」をクリックし、「空白なし」を選択」→「書式」から「塗りつぶし」を選択
(6) 塗りつぶしに色を選択→「OK」→「OK」→「OK]で「文字」「数値」を入力するとセルに設定色が付きます。

別の方法として・・・
(3) までの手順を済ませ、ルールの種類から「数式を使用して書式設定するセルを決定」を選択
(4) 枠の中に =A1<>"" と入力→「書式」よりセルの色を設定→「OK」→「OK」→「OK」でも設定できます。


人気Q&Aランキング