• ベストアンサー

エクセルで日付の個数を判定する。

エクセルでの日付の個数を判定したいです。 具体的には 月日 走行時間 走行距離 平均速度 最高速度 累積距離 10月13日 1:12:14 17.84 14.8 28.2 4,046.3 というようにデータが入っていて、1行1回の走行データが入っています。 なので、月日欄が2行、もしくは3行同じ値がある場合、これを1とカウントし、1日あたりの走行時間、走行距離を計算したいのですが、たまに 07月12日 1:37:35 28.28 17.4 42.0 2,592.2 07月12日 0:13:55 2.33 10.0 19.4 2,594.6 07月13日 1:14:07 21.16 17.1 34.6 2,615.7 というように、1日2回記録がある場合、これを7月12日は1日とカウントしたいのですが、この場合関数などどのようなものを使えばいいでしょうか? データの個数=行数は今のところ235行でどんどん増やしていきたいのですが。 どうかよきアドバイスをお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.7

No.4・5・6です! ほんとぉ~!に何度もごめんなさい。 投稿した後でもう一度質問文を読み返してみたところ 一番最初の >エクセルでの日付の個数を判定したいです。 を見落としていたみたいです。 もしかして単純に違う日付が何日あるか?という数だけ表示できればよかったのですかね? もしそうであれば、 かなり余計なお世話の回答をしていたみたいです。 Sheet1の作業列A列はそのまま生かしてもらい、 表示させたいセルに =COUNT(A:A) としてみてください。 これで画像の場合は「3」という数値が表示されるはずです。 以上、参考になれば良いのですが・・・ 今回も大外れならごめんなさいね。m(__)m

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

その他の回答 (6)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.4・5です! 返信が遅くなってごめんなさい。 前回は平均速度や最高速度等も一緒に処理しようとして、 配列数式があったために余計に判りづらくなったみたいでごめんなさいね。 改めて回答させていただきます。 今回は、走行時間と走行距離の日付ごとの集計だけを回答してみます。 (配列数式はありませんので、この画面から数式をそのままコピー&ペーストしても大丈夫だと思います。) ↓の画像で前回同様Sheet1に作業列を設けさせていただいています。 A列を作業用の列としていますので、 A2セルに =IF(COUNTIF($B$2:B2,B2)=1,ROW(A1),"") としてオートフィルで1000行くらいまでコピーしてください。 そして、Sheet2の「日付」のA2セルに =IF(COUNT(Sheet1!$A$2:$A$1000)>=ROW(A1),INDEX(Sheet1!$B$2:$B$1000,SMALL(Sheet1!$A$2:$A$1000,ROW(A1))),"") 「走行時間」のB2セルに =IF(A2="","",SUMIF(Sheet1!$B$2:$C$1000,A2,Sheet1!$C$2:$C$1000)) 「走行距離」のC2セルに =IF(A2="","",SUMIF(Sheet1!$B$2:$D$1000,A2,Sheet1!$D$2:$D$1000)) という数式を入れます。 最後にA2~C2セルを範囲指定し、C2セルのフィルハンドルでオートフィルで下へコピーすると 画像のような感じになります。 今度はなんとか希望に近い形にならないでしょうか? 以上、お役にたてば幸いですが、 今回も的外れならごめんなさいね。m(__)m

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

No.4です! たびたびごめんなさい。 前回の回答の中で配列数式になるセルがありましたので その説明をしていませんでした。 この画面からそのままコピー&ペーストしただけでは正確な値を返さないと思いますので、 再び顔を出してしまいました。 前回の表そのまま利用させていただいて、 Sheet2のE2・F2セルは配列数式になりますので E2セルに数式を貼り付けた後、F2キーを押すか、数式バー内で一度クリックします。 (数式は前回のままで大丈夫だと思います) そうすると編集可能になりますので Shift+Ctrl+Enterキーを押してください。 数式の前後に{ }マークが入り配列数式になります。 それをF2セルにオートフィルでコピーします。 最後の範囲指定 → オートフィルで下へコピーは前回のままでOKかと思います。 どうも何度も失礼しました。m(__)m

maxmilean
質問者

補足

どうも、返事が遅くなってすいません。 いろいろ試しましたが、 どうも関数を理解できてないので??です。 最初の関数でかなりいいところまで行きましたが、2行続けて同じ日付が入ったとき、期待値と違う値が帰ってくるようです。 具体的には2列目に日付値が帰ってこない、という現象でした。

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

こんばんは! 余計なお世話かも知れませんが・・・ >1日あたりの走行時間、走行距離を計算したいのですが・・・ とありましたので 勝手に↓の画像のように表を作ってみました。 Sheet1のA列に作業用の列を挿入させてもらっています。 (別にA列でなくても構いません) Sheet1のA2セルに =IF(COUNTIF($B$2:B2,B2)=1,ROW(A1),"") という数式を入れ、オートフィルで下へコピーします Sheet2の数式が10000行まで対応するようにしていますので、 10000行くらいまでコピーしても構いません。 次にSheet2のA2セルに =IF(COUNT(Sheet1!A:A)>=ROW(A1),INDEX(Sheet1!$B$2:$B$10000,SMALL(Sheet1!$A$2:$A$10000,ROW(A1))),"") B2セルに =IF($A2="","",SUMPRODUCT((Sheet1!$B$2:$B$10000=Sheet2!$A2)*(Sheet1!C$2:C$10000))) として、C2セルまでオートフィルでコピーします。 (B2・C2セルともにセルの表示形式は修正しておいてください) そして平均速度に関しては合計してはまずいので D2セルに =IF(A2="","",SUMIF(Sheet1!$B$2:$E$10000,Sheet2!A2,Sheet1!$E$2:$E$10000)/COUNTIF(Sheet1!$B$2:$B$10000,A2)) E2セルに =IF($A2="","",INDEX(Sheet1!F$2:F$10000,MAX(IF(Sheet1!$B$2:$B$10000=Sheet2!$A2,ROW($A$1:$A$9999))))) とし、E2セルのフィルハンドルでF2セルまでコピーします 最後にA2~F2セルを範囲指定し、 F2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 以上、長々と書き込みましたが、 参考になれば幸いです。 他に良い方法があれば読み流してくださいね。m(__)m

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

#1です >対象範囲を可変、の部分がよくわからなかったので教えていただけないでしょうか? [Ctrl]+[F3] 名前の定義 名前 PT範囲 参照範囲 =$A$1:INDEX($F:$F,COUNTA($A:$A)) ピボットテーブルウィザードの2/3 範囲 : PT範囲 ピボットテーブルの更新は ピボットテーブルを右クリックして データの更新

maxmilean
質問者

補足

解説ありがとうございます。 とりあえず作ってみました。 が、できれば入力したら即値が帰ってくるような方法が好みです。 意味を理解してテストするのに時間がかかってしまい、お返事が遅れました。 どうもありがとうございます。

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

シート1にお示しのような記録があるとして、シート1ではA列からF列までに入力されており、1行目には項目名が2行から下にデータが並んでいる、あるいはこれからデータがどんどん追加されていくとします。 H列は作業列としてH2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(A1<>A2,MAX(H$1:H1)+1,"")) シート2にはお求めのデータを表示させるとします。 1行目にはシート1と同じ項目名をコピーして貼り付けます。 A2セルには次の式を入力します。 =IF(COUNTIF(Sheet1!$H:$H,ROW(A1))=0,"",INDEX(Sheet1!$A:$F,MATCH(ROW(A1),Sheet1!$H:$H,0),1)) B2セルには次の式を入力し、C2セルまでオートフィルドラッグします。 =IF($A2="","",SUMIF(Sheet1!$A:$A,$A2,Sheet1!B:B)) D2セルには次の式を入力します。 =IF($B2="","",C2/B2/24) E2セルには次の式を入力しF2セルまでオートフィルドラッグします。 =IF($B2="","",MAX(INDEX(Sheet1!$A:$F,MATCH($A2,Sheet1!$A:$A,0),COLUMN(E2)):INDEX(Sheet1!$A:$F,IF(COUNTIF(Sheet1!$A:$A,$A2+1)>0,MATCH($A2+1,Sheet1!$A:$A,0)-1,MATCH($A2+1,Sheet1!$A:$A,1)),COLUMN(E2)))) A2セルからF2セルまでを選択してからF2右下隅のフィルハンドルを下方にドラッグします。 最後にA列の書式の表示形式を日付に、B列を時刻に、その他の列の表示形式を標準にします。これでシート1にデータが追加されてもシート2では1日ごとのデータとして自動的に追加されていきます。

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

>1日あたりの走行時間、走行距離を計算したいのですが、 なら ピボットテーブルを使われたらいかがですか? 添付図参照。 >データの個数=行数は今のところ235行でどんどん増やしていきたい 名前の定義を使い、対象範囲を可変として、ピボットテーブルの範囲とすれば良いです。更新の必要があります。 =$A$1:INDEX($F:$F,COUNTA($A:$A)) 本来の質問かな >これを7月12日は1日とカウントしたいのですが、 >この場合関数などどのようなものを使えばいいでしょうか? =COUNT(1/FREQUENCY(A2:A5,A2:A5)) 添付図参照

maxmilean
質問者

補足

早速の回答ありがとうございます。 なるほど、ピボットテーブルですか。 対象範囲を可変、の部分がよくわからなかったので教えていただけないでしょうか?

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

関連するQ&A

  • エクセルでフィルタ後の条件付き個数のカウント

    いつもお世話になっております。 エクセル(2007)で作成した表をフィルタ後に条件に合致する個数をカウントする方法を教えてください。 (例) A列:名前 B列:出身県のデータがあったとします。 名前でフィルタをかけた後、出身県ごとのカウントを行いたいのですが、条件が無い場合のデータ個数はSUBTOTAL関数を使えばOKなのはわかります。 COUNTIFS関数を使うと、フィルタで隠れた行のデータまでカウントしていまいます。 ピボットを使う(使い方がイマイチわかりませんが・・・)という方法もあると思いますが、今回は同一シート無いに関数でカウントしたいのです。 どなたかよろしくお願いいたします。

  • エクセルで日付の判定を行いたい

    エクセルで特定の日時の期間内でのカウントを行っているのですが、別のセルに年・月・日を記入する形をとって、各セルの数字を判定して、1月のデータだから、1月にプラス1という計算を行っていますがスマートではありません。 同じセル内で2013/1/1と書かれてもこれは1月のデータだと判定する方法はありませんか?

  • エクセルでこのようなことはできますか?

    厳密にはオープンオフィスなんですが、たぶん同じことだと思うので、エクセルのやり方でも構いません。 各行に左から順にいくつかのセルに数字が入っていて、途中のセルで終わっています。たとえば、 | 32 | 16 | 25 | 空欄 | 空欄 | 空欄 | …… | 12 | 29 | 16 | 15 | 空欄 | 空欄 | …… といった具合です。行ごとに埋まっているセルの個数が異なるのですが、このセルの個数をカウントしたいのです。たとえば上の例でいうと、1行目が3、2行目が4を返すようにしたいです。膨大な行数で、しかもセルの個数が数十に達することもあるので、いちいち数えたくはありません。どうぞよろしくお願いします。

  • EXCELで特定の日付のセルの個数をカウント

    こんばんは。 ある列(例えばH列に)ことなる日付が入力されているとします。 ここでA1セルにカウントしたい日付を入力して、そのH列の中(数十行あります)でA1セルに入力されたのと同じ日付のセルの数のみをカウントするにはどうしたらよいでしょう? 例えば1月1日と2日が混在していて、1日分のもののみをカウントしたい 場合です。仕事で緊急で必要なので、よろしくお願いします。  

  • エクセル 種類の個数をカウントする関数はありますか

    エクセル2002を使用しています。 重複データはひとつの種類として、範囲内のデータの種類数を計算したいのですが、どのようにすべきでしょうか? この範囲内には、ところどころ空白セルがあります。 例 B列 3行  10 4行  11 5行  12 6行 7行  15 8行 9行  15 10行  18 これで、B3からB10の範囲の種類別のデータの数は5です。 これを関数で計算したいのです。 本当は対象データが多いので、とりあえず、ピボットテーブルをかけて、抽出されたデータの一覧から使用した行数を数えて正解の数はわかりましたが、こんな方法はエクセルらしくないですよね。 また、データが数値でなかった場合も、関数で求められるでしょうか? 例 B列 3行  鈴木 4行  鈴木 5行  佐藤 6行 7行  高橋 8行 9行  高橋 10行  野口 この場合は、鈴木・佐藤・高橋・野口 で、データの種類の個数は4です。 これを関数で求めたいのです。 よろしくお願いします。

  • 重複データの個数関数

    エクセル2000を使用していますが、データの個数は、 COUNTA関数でできますが、重複しているデータもカウントしています。 これを重複しているデータは、いくつあっても1回しかカウントしないで求める関数は、あるのでしょうか。

  • エクセル関数でセル個数検索で2つの条件が一致する行数を求める方法はあり

    エクセル関数でセル個数検索で2つの条件が一致する行数を求める方法はありますでしょうか? セル個数の場合=COUNTIF(A1:A50,"晴れ")でセル個数を求めますがB1:B50のセルに曜日が記入されているとしてA列の晴れとB列の日曜日が一致するセルが何回(何行)あるか求める関数はありますでしょうか?よろしくお願いします。ソフトはXPを使用しています。

  • エクセル、行数をカウントしたい。

    エクセル初心者です。 よろしくお願いいたします。 エクセルでこのような表を作っています。   A  B  C 1 10 15 2 20 3    10 4    15 5 10 6 10 10 7 8 この時、データの入っている行数をカウントしたいのです。 上の例では 「6」 です。 途中に空白の行はありません。 A列、B列にはどちらにも数字が入る場合と、どちらかにしか 入らない場合があります。 なので COUNT は使えないですよね? 今まではデータを入力後、下の空白の行を削除し、C列で COUNTBLANK として求めていたのですが、表の長さ(行数)が一定でないため、 体裁が悪くなってしまっていました。 希望としては。 最終行のC列に「終了」などと入れると、その文字列を判別 してくれて、それより上の行数をカウントしてくれる。 または 例えば OR を使って、A列B列どちらかにデータがある 場合のみ、カウントしてくれる。 こんなワガママなことができたら、と思っております。 補足が必要ならばいたします。 それと、遅くなるかもしれませんが、お礼は必ずさせていただきます。

  • Excel 関数でcountifの複数条件

    Excelで条件にあった個数をカウントする関数はcountifですが、 複数の条件にあった個数をカウントする場合、countifの式はどうすればよいのでしょうか。 例えば A列の1行から20行で"○"が入っている個数のカウントは =countif(a1:a20,"○")ですが A列の1行から20行で"○"が入っていて、なおかつ B列の1行から20行に"1"が入っている個数のカウントを知りたいです。 =countif(a1:a20,"○")and(b1:b20,"1")ではないですよね。 よろしくご教授願います。

  • Excelで、出勤人数の集計方法は?

     現在、私の手元に工場の作業日報のデーターベースがあります。  いつ、誰が、どんな作業を、何時から、何時まで行っていたかというデーターが約半年分、行数にして1万5千行ほどあります。    このデーターベースから、日付毎の出勤人数を集計したいのですが、集計やピポットテーブルを使用しても上手く往きません。  A列に日付、B列に作業者名、C列以降に作業名や時間が入力されているのですが、一人が一日に複数の作業を行った場合、同じ日付に同じ作業者名が幾つもダブって入力されています。  集計やピポットテーブルを使用しても、例えば同じ日付に同じ作業者名が3回登場すると、1とカウントせず、3とカウントしてしまいます。  このように、データーの個数を集計するのではなく、データーが何種類有るかを集計する方法は無いのでしょうか。詳しい方、どうかご教授下さい。  では。

カラー印刷が選択できない
このQ&Aのポイント
  • Windows11への更新後、パソコンからの印刷でグレースケールとモノクロしか選択できなくなりました。
  • お使いの環境はWindows11で無線LAN接続です。
  • ブラザー製品に関する質問です。
回答を見る

専門家に質問してみよう