• ベストアンサー

日と時刻のカウント

Excel2000です。 B2から下に「日付」の意味で 8月31日 8月30日 8月29日  ・  ・ C2から下に「何時台」の意味で 1 2 3 ・ ・ D2から下に「日付と時刻」で 2004/8/24 17:23 2004/8/23 20:00 2004/8/18 17:11   ・   ・ と入力されている時に E2には、D列に8月31日が何個あるか、 F2には、1時台が何個あるかを表示するには どういう数式を立てたらいいでしょうか。

noname#9284
noname#9284

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

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

#1です。補足していただいて、ありがとうございました。 答えを出すために使うデータが上部にあり、データそのものが下部分にあるのですね。わかりました。 元データが日付+時刻になっている点が、問題として目新しい(複雑になっている)です。 (1)日付の取りだし方     =INT(A1)かまたは =DATE(YEAR(A1),MONTH(A1),DAY(A1)) (2)時刻の取り出し方     =A1-INT(A1)または    =TIME(HOUR(A1),MINUTE(A1),SECOND(A1)) それぞれ、日付、時刻の書式にその列を設定して見ること。    時刻は、本問題では時間帯を考えているので    =HOUR(A1)でよい。 (例データ)A1:C9 2004/8/24 1:30 2004/8/24   1 2004/8/25 2:30 2004/8/25   2 2004/8/24 15:30 2004/8/24   15 2004/8/27 6:30 2004/8/27   6 2004/8/24 1:35 2004/8/24   1 2004/8/25 15:30 2004/8/25   15 2004/8/26 1:50 2004/8/26   1 2004/8/25 15:10 2004/8/25   15 2004/8/27 6:30 2004/8/27   6 B列はB1に=INT(A1)を入れてB9まで複写したもの。 C列はC1に=HOUR(A1)をいれてC9までふくしゃしたもの。 A10:A13に A列      B列 2004/8/24      3 2004/8/25      3 2004/8/26  1 2004/8/27      2 があるとして B10に=COUNTIF($B$1:$B$9,A10)と入れてB13まで複写する。 (結果) 上記B列の通り。 A14:A17に 1 3 2 1 6 2 15 3 あるとして B14に=COUNTIF($C$1:$C$9,A14)といれB17まで複写したもの。 (結果)B列のとおり。 ワーク列として、B、C列を使っていますが、配列数式を 使うと凌げる場合がある。 例えば本問題では (日付) B10に =SUM(IF(INT($A$1:$A$9)=A10,1,0))と入れて、SHIFT+CTRL+ENTERで3が出ます。 B11からB13は式複写でよい。 (時刻) B14に=SUM(IF(HOUR($A$1:$A$9)=A14,1,0))を入れ SHIFT+CTRL+ENTERで3が出ます。 B15からB17は式複写でよい。    

noname#9284
質問者

お礼

何度もすみません。 ええと、データの入力は質問に書かせていただいたとおりなんです。 B列に日付、C列に○時台、 D列に日付と時刻 という具合なんです。 ご回答を元に E2には {=IF(B2="","",SUM(IF(INT($D$2:$D$100)=B2,1,0)))} または =IF(B2="","",SUMPRODUCT((INT($D$2:$D$100)=B2)*1)) F2には {=SUM(IF(HOUR($D$2:$D$100)=C2,1,0))} または =SUMPRODUCT((HOUR($D$2:$D$100)=C2)*1) として必要な分下までコピーしました。 お礼申し上げます。 8月29日17:22

その他の回答 (2)

noname#240783
noname#240783
回答No.2

データが列2から列11までとして、配列数式を使って セルE2には =SUM((MONTH(D2:D11)=8)*(DAY(D2:D11)=31)) と入力してから、CtrlキーとShiftキーを同時に押したままEnter。 セルF2には =SUM(IF(HOUR(D2:D11)=1,1)) と入力してから、CtrlキーとShiftキーを同時に押したままEnter。 セルF2の方は対象がC列なのかもしれませんが、ちょっと不明でしたので F列を対象にしました。 こーゆーことでしょうか??

noname#9284
質問者

お礼

ご回答をありがとうございます。 ご回答をもとに {=IF(B2="","",SUM((MONTH($D$2:$D$100)=MONTH(B2))*(DAY($D$2:$D$100)=DAY(B2))))} または =IF(B2="","",SUMPRODUCT((MONTH(B2)=MONTH($D$2:$D$100))*(DAY(B2)=DAY($D$2:$D$100)))) {=SUM(IF(HOUR($D$2:$D$100)=C2,1))} または =SUMPRODUCT((C2=HOUR($D$2:$D$100))*1) としました。 お礼申し上げます。 8月28日23:13

noname#9284
質問者

補足

> セルF2の方は対象がC列なのかもしれませんが、ちょっと不明でしたので > F列を対象にしました。 D列の中に、C列に入力した「○時台」がいくつあるかをカウントさせたいと思いました。 8月28日23:17

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

2点良く判らない。 (1)B列+C列とD列の関係はあるのでしょうか。 B列とC列は組みになったものですよね。 (2)>D列に8月31日が何個あるか 8月31日のように指定した日を単発で個数を数えるのか、 8月31日はセルに入るのか。 また8月30日は、8月29日は・・・と、沢山の日にちについて勘定するのか。

noname#9284
質問者

補足

(1)B列+C列とD列の関係はあるのでしょうか。 ありません。組にもなっていません。書いたとおり入力されているだけです。 (2)>D列に8月31日が何個あるか B列の日付を見て、D列からカウントし、B列の日付と同じ行に個数を返したいと思います。 よって > また8月30日は、8月29日は・・・と、沢山の日にちについて勘定するのか。 となります。 8月28日22:57

関連するQ&A

  • エクセルマクロで、現在の時刻を記録するには?

    エクセルマクロの初心者です。タイムカードの簡易版(個人記録用)を作っています。B列に月、C列に日付けの値が入っています。4月でいうと、B列1行目から30行目までは4が、C列1行目から30行目までは1から30までの値が入っています。例えば4月1日に出社した時にマクロボタンを押すとD列の1行目に、その時の時刻が入力できるようにしたいのです。時刻の表示形式は特にこだわりません。now,day,monthなどの意味や使い方はだいたい分かりますが、例えば4月10日にマクロボタンを押した時に、D列10行目に時刻が記録されるようにするにはどうすればよいでしょうか。教えてください。

  • 時刻×時給計算

    Excel 2010です。 列 A   B    C    D     E      F             G 10:00  19:00   9:00   1:00    8:00    =Eの計算結果*24  時給   としたいのですが、 このページ(http://pc.nikkeibp.co.jp/pc21/tech/excel36/13/)を参考にしたところ、 Fのセルが8になってしまいました、なぜでしょうか? Eの書式設定は時刻です。 Fの書式設定は数値です。

  • エクセルのVLOOKUP関数の検索値が数式の場合について

    エクセルのVLOOKUP関数に悩んでいます。 どなたかご指導お願いいたします。 *--------------------------* A~F列 すべて書式が時刻です。 A、B列には数式で計算された時刻が入力されており、 C列はA列+B列という計算式がはいっています。 F列に=VLOOKUP(C列、D:E列、2、FALSE)というように C列を検索値とし、D列を参照し、E列にある時刻をF列に 設定したいのですが、結果が#N/Aになります。 例えばA,B列が数式ではなく入力した値であれば 検索値であるC列がA列+B列 でも結果はOKでした。 検索値は数式セル同士を足し算した数式は設定不可能なのでしょうか?

  • 【Excel VBA】データを集計する数式を入力するマクロ

    Excel2003を使用しています。   A列   B列   C列   D列   E列   F列 1      9/1                    20000 2      9/2              1000 3      9/10              5000 : : 10           9月計        ※1    ※2    11 12 13     10/1                   10000 14     10/10             2000 15     10/14                   4000 : : 20           10月計       ※3    ※4 上記のデータでいうと、 ※1(E10セル) =SUM(E1:E9) ※2(F10セル) =SUM(F1:F9) ※3(E20セル) =SUM(E13:E19) ※4(F20セル) =SUM(F13:F19) という内容の数式を入力するマクロを作成したく、数式を入力したいセルをアクティブにして、ボタン等に登録したマクロを実行すると数式が入力されるようにしたいと考えていますが、その際、集計範囲の最下行は、アクティブセルの1行上までになりますが、最上行をどのようにして取得すればよいかがわかりません。 (実際のデータは、もっと行数も入力されているデータ数も多いです) また、他にもこんな方法があるとか、こうしたほうが簡単とかあれば、教えていただけると勉強にもなりますので助かります。 うまく説明できなくて申し訳ありませんが、よろしくお願いします。

  • 【Excel】正しい計算結果が得られない

    Excel2003を使用しています。 B列は日付、C列は摘要欄、E列・F列は金額データが入力されています。 C列に『n月計』と入力された行のE列・F列に下記の数式(E269セル、F269セルの場合を記載)をマクロボタンをクリックすることにより、入力できるようになっています。 E列: =SUMPRODUCT((MONTH($B$4:$B268)=VALUE(LEFT($C269,LEN($C269)-2)))*(E$4:E268)) F列: =SUMPRODUCT((MONTH($B$4:$B268)=VALUE(LEFT($C269,LEN($C269)-2)))*(F$4:F268)) 4月計~12月計までは、問題なく上記の数式で集計できていたのですが、1月計を同様の操作で数式を入力したところ、正しい集計結果を得ることができません。 以前は、単純にSUM関数を使用して、その月のデータを都度、手作業で範囲選択していましたが、同様のシートが40枚ほどあるため、マクロボタンをクリックすることで、集計の数式が入力できればと思い、作成したのですが…。 どういった原因が考えられますでしょうか? よろしくお願いします。

  • エクセルの数式で日付=日付がTRUEにならない

    エクセル2010のA列に日付、B列に時刻、C列にある数字が入っており、D列で指定した日付のC列の数字を足したいとします。  A       B   C      D     E 2014/3/4   0:00   1   2014/3/4    2014/3/4   1:00   0   2014/3/5 2014/3/4   2:00   1   2014/3/6   ・      ・    ・      ・   ・      ・    ・      ・   ・      ・    ・      ・ 2014/3/4  23:00   0 2014/3/5   0:00   1   ・      ・    ・      ・   ・      ・    ・      ・   ・      ・    ・      ・ この時、E列には数式「=sumif($A$:$A$,D1,$C:$C)」を入れれば、求めたい数字が出てくるはずです。 ここで質問なんですが、このときにA列に入っている日付とD列に入っている日付が同じなのに、認識されずにsumが行われない時があります。 これは何が原因と考えられますか? データの入力をwindowsでやったりMacでやったりしたことも原因の一つとも考えられますが、その場合に起こり得る問題は何があるでしょうか?

  • Excel 関数の引数で時刻を使いたい

    Excel2007です。 時間の計算をしたいのですがIF関数の引数に22:00等を使う方法を教えて下さい 次のようにすると22時までは計算されるのですが22時以降が計算されません。引数の時間の使い方が間違っているような気がするのですが、時刻を引数として使う方法を教えて下さい。 A1に日付  B2に開始時刻 =IF(WEEKDAY(A2)=7,"8:00","17:30") 土曜日は、8:00 月曜から金曜は、17時 日曜日は、入力しない  C2に終了時刻  手入力 例えば23:00 D2に =IF(C2<="22:00",C2-B2,"22:00"-B2)  開始時刻から22:00時までの時間 E2に =IF(C2>"22:00",C2-"22:00",0)  22:00以降終了時刻までの時間 よろしくお願いします。

  • エクセルで日付・時刻の差を知りたい

    いつもお世話になってます。 早速質問ですが、エクセルで日付と時刻の差を出す関数や数式を知りたいです。 2つのセルにそれぞれ日付を入力した場合や、時刻をそれぞれ入力した時の差の出し方はわかるのですが、2つのセルにそれぞれ日付・時刻を入力し、その差を出す方法がわかりません。 そもそもそういった方法が可能なのでしょうか。

  • Excelの時間計算(年・月・日 別々のセルで…)

    Excelの時間計算で悩んでいます。 2つの異なる日付(年、月、日別々のセルに入力したもの)の 日数の差を関数で表示させたいのですがうまく行きません。 例えば、 A列にスタート年、B列にスタート月、C列にスタート日、D列にエンド年、E列にエンド月、F列にエンド日を入力し G列にエンド年月日-スタート年月日の日数させたいと考えています。 +----A----B----C----D----E----F----G 1   2008      2      1   2008      2     28     24 G1にDATE(D1,E1,F1)-DATE(A1,B1,C1)の数値を表示させたいのです。 ひとつのセルに日付形式で年月日を持たせれば DATEIF関数で実現可能なのは判りましたが 運用上、年月日を別のセルにして管理したいと考えています。 どなたかお解りになる方、いらっしゃいませんでしょうか。

  • Excel関数について

    Excel関数について Excel2003を使用しております。 B列に日付を入力しており、E列には数字を入力しております。 B列には必ず日付を入力しておりますが、E列には数字を入力していない場合もあり、 日付ごとにE列に入力した数字をカウントしたいのですが、 どのような数式を使用すれば確認出来るでしょうか? 日付ごとの数字の合計ではなく、あくまでもカウントになります。 ご教示頂きたく、何卒宜しくお願い致します。

専門家に質問してみよう