• 締切済み

日付から求める計算方法

はじめまして、こんにちは。私はエクセルの初心者で、初歩的な質問ですみませんが、教えてください。 現在、下記のようなリストがあります。 B列の訪問日数は2008/08/01と2008/08/03と2008/08/06の3日間です。 C列の実稼動日は、終日で1日、半日で0.5日と計算し、2008/08/06は半日なので、実稼動日は2.5日です。 といったB列日付を元に訪問日数の合計、 B列日付とC列の稼動区分を元に実稼動日を計算して、F列に各結果を表示させたいと思っています。 ---------------------------------------------------------------- A列    B列   C列    D列    E列    F列 番号 訪問日  稼動区分  時間  訪問先 訪問日数 3 001 2008/08/01 終日  09:00-12:30 佐々木商事 実稼動日 2.5 002 2008/08/01 終日 15:00-16:00  井口(株) 003 2008/08/03 終日 10:00-11:00  山本(株) 004 2008/08/06 半日 10:00-11:00  浜田商事 005 2008/08/06 半日 11:30-12:00  木谷運輸 006 2008/08/06 半日 13:30-14:00 山本(株) ---------------------------------------------------------------- 関数を使って(COUNTIF,IF(COUNTIF)など)いろいろと試したのですが、どうもうまくいきません。 そこで、VBAでも関数でも結構です。 どなたか解決方法を教えてください。 よろしくお願いします。

みんなの回答

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆「実稼動日」は =SUMPRODUCT(INDEX(ISNUMBER(1/(MATCH(B3:B8,B3:B8,)=ROW(1:6))),)*LOOKUP(C3:C8,{"終日",1;"半日",0.5}))

marobo43
質問者

補足

早々のご回答を頂きまして、ありがとうございます。 いくつか質問をさせてください。 ROW(1:6)はA~F列を指定しているのかと判断していますが、何のための指定か調べてみたのですが、答えが見つかりませんでした。 よろしければ、何のためのものなのか教えてください。 B3:B8,B3:B8やC3:C8の参照先ですが、最終行が何行目か決まっていなく、最終行はユーザーが入力するたびに変動してしまいます。 何行目までっていう指定をせずに、変数を割当てるイメージをしているのですが、どう記述すればいいのでしょうか?? よろしくお願いします。

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

訪問日数=SUMPRODUCT(1/COUNTIF($B$2:$B$7,$B$2:$B$7)) 稼働日数=SUMPRODUCT((($C$2:$C$7="終日")+1)/2/COUNTIF($B$2:$B$7,$B$2:$B$7))

marobo43
質問者

補足

早々のご回答を頂きまして、ありがとうございます。 $C$2:$C$7や$B$2:$B$7,$B$2:$B$7の参照先ですが、最終行が何行目か決まっていなく、最終行はユーザーが入力するたびに変動してしまいます。 何行目までっていう指定をせずに、変数を割当てるイメージをしているのですが、どう記述すればいいのでしょうか?? よろしくお願いします。

すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

作業列使用してもよければ F2セルに =IF(COUNTIF(B2:B$2,B2)=1,1,0) G2セルに =IF(C2="終日",1,0.5)*F2 下までコピィする F1、G1セルにSUM関数入れれば F1に訪問日数 3 G1に実稼動日 2.5 が出るはずです。

marobo43
質問者

お礼

早々にご回答いただきまして、ありがとうございます。 早速教えていただいた方法を試したのですが、行数が多くなると読み込みか計算に時間がかかってしましました。 こういうやり方もあるのだと大変勉強になりました。 とても感謝しています。ありがとうございます。

marobo43
質問者

補足

早々にご回答いただきまして、ありがとうございます。 早速教えていただいた方法を試したのですが、行数が多くなると読み込みか計算に時間がかかってしましました。 こういうやり方もあるのだと大変勉強になりました。 とても感謝しています。ありがとうございます。

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

関連するQ&A