• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでの稼働日数集計)

エクセルでの稼働日数集計方法を徹底解説

このQ&Aのポイント
  • エクセル2003を使用して、期間内の稼働日数を集計する方法について解説します。
  • 同日の結果が複数行存在する場合でも、どのような関数を使えば簡単に集計できるのか、具体的な手順を説明します。
  • また、作業列に月の1日の日付データを入力しておくことで、一ヶ月ごとのトータル稼動件数を計算する方法も紹介します。

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

  • ベストアンサー
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.7

外部リンク先を見に行くつもりはありません。 私は情報を皆で共有する為に回答しています。質問が終わったら 消してしまうような情報を前提にして回答したくありません。 言葉で説明できない理由が分かりません。 ただ Excel2003ということから考えて おそらくは 分析ツールを アドインしていないことが原因だろうとは思います。 EOMONTH はアドイン関数なので。 =FREQUENCY(IF(FREQUENCY(A$1:A$100,A$1:A$100+0),A$1:A$100),DATE(YEAR(B1),MONTH(B1)+{1,0},0)) 2003でもこれなら計算できるはずです。

hikaru_u
質問者

お礼

御返答ありがとうございます。 御教示頂きました数式で集計する事ができました。 ありがとうございました。 天井人様からのありがたいお言葉、感謝致します。

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

その他の回答 (7)

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

2014年1月の日付の集計は以下のような数式で計算できます。 =COUNT(1/((MATCH(A1:A1000,A1:A1000,)=ROW(A1:A1000))*(YEAR($A$1:$A$1000)&MONTH($A$1:$A$1000)="20141"))) 配列数式ですので入力後Ctrl+Shift+Enterで確定してください。 なお、B1セルに2014年1月の日付が入力されているなら「20141」の部分を以下のような関数に置き換えた数式にしてください。 =COUNT(1/((MATCH(A1:A1000,A1:A1000,)=ROW(A1:A1000))*(YEAR($A$1:$A$1000)&MONTH($A$1:$A$1000)=TEXT(B1,"yyyym")))) 実際のリストのレイアウトが2行目からデータの場合は以下のように数式を修正する必要があります。 =COUNT(1/((MATCH(A2:A1000,A2:A1000,)=ROW(A2:A1000)-1)*(YEAR($A$2:$A$1000)&MONTH($A$2:$A$1000)="20141")))

hikaru_u
質問者

お礼

御返答ありがとうございます。 御教示頂きました数式でも集計する事ができました。 ありがとうございました!

すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.6

ANo.3です。 > 但し、No.4の方の仰る通りデータが今後も増える為、予め集計する範囲を広く取っても集計できる数式ですと幸いです。 では、作業列を使用する方法を。 添付の図ではC列を作業列として使用しています。 C1に↓の式を入れて下方向にずっとコピー =IFERROR(1/COUNTIF(A:A,A1),0) 次にD1セルに↓の式を入れてB列に月初の日付が入っている行の最後までコピー =SUMIFS(C:C,A:A,">="&B1,A:A,"<"&EDATE(B1,1)) C列は非表示にでもしておいてください。 なお、D列の式にはEDATE関数を使っていますが、この関数を使うにはアドインで分析ツールを組み込む必要があります。

hikaru_u
質問者

お礼

御返答ありがとうございました。 作業列を利用する方法も試してみようと思います!

すると、全ての回答が全文表示されます。
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.5

> エラーになってしまいました。 何というエラーですか? 返った結果については詳細に書いて下さい。 エラー値を見ないと原因が分かりません。 手当たり次第にエラー対策をしていると 無駄な処理が増えます。 B列に月初の日付は入っていますね? 「空白」は本当に「空白」ですか? 日付以外のデータが含まれていませんか? =FREQUENCY(IF(FREQUENCY(A$1:A$100,TEXT(A$1:A$100,"0;;0;!0")*1),A$1:A$100),EOMONTH(B1,{0,-1})) ひとまず。少なくとも検証してから回答しているので 何か書いていな い情報がない限りは計算するはずです。

hikaru_u
質問者

補足

重ね重ねありがとうございます。 また当方の返答が不十分で申し訳ありません。 こちらで試した所、以下の状況になってしまいます。 https://www.dropbox.com/s/cxt6whdaoidqwqb/%E7%84%A1%E9%A1%8C2.jpg?dl=0 >B列に月初の日付は入っていますね? 入っています。 >「空白」は本当に「空白」ですか? A100まで確認しましたが、空白で間違いありません。 >日付以外のデータが含まれていませんか? ファイルを新規作成し、必要なデータのみを入力しましたが、結果は変わりませんでした。

すると、全ての回答が全文表示されます。
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.4

> 尚、作業列としてB列にそれぞれの月の1日の日付データをB列に入力しており それを「作業列」とはいいませんね。何の作業もしてないので。 補助的な計算をするセルやシートを 作業セル・作業シートといいます。 範囲を多めにとっておくなら 空白も処理しないとダメなはずなので C1セルに =FREQUENCY(IF(FREQUENCY(A$1:A$100,A$1:A$100+0),A$1:A$100),EOMONTH(B1,{0,-1})) でどうですか? 尚 数式の説明は遠慮させて頂いてます。

hikaru_u
質問者

補足

御教示ありがとうございます。 仰います通り範囲を多目に取りたい為、空白処理ができると非常に助かります。 教えて頂きました数式をC1セルに入れてみましたが、エラーになってしまいました。 改めて御教示頂けますと幸いです。

すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

失礼。 B列に入っている値をA列の日付の月初と勘違いしていました。 これでどうでしょう。 =SUMPRODUCT(1/COUNTIF($A$1:$A$12,$A$1:$A$12)*(TEXT($A$1:$A$12,"YYYYMM")=TEXT(B1,"YYYYMM")))

hikaru_u
質問者

補足

御回答ありがとうございます。 教えて頂いた数式で集計することができました。 但し、No.4の方の仰る通りデータが今後も増える為、予め集計する範囲を広く取っても集計できる数式ですと幸いです。

すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

こんなのでどうでしょう =SUMPRODUCT(1/COUNTIF(A1:A12,A1:A12)*(B1:B12=B1))

すると、全ての回答が全文表示されます。
  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.1

=DATE(YEAR(A1),MONTH(A1),1) で、日を外して、年月にしてから、ピボットテーブルで種類数を出すことをお勧めします。

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

専門家に質問してみよう