- ベストアンサー
Excelで表1からある文字列を検索し、HITした同一行にある数値を計算し、表2に反映させたい
はじめまして。Excelの関数を利用して、 以下のような仕組みを作りたいと思います。 毎日の作業を表にまとめた(表1)から、 作業を抜き出して、作業毎の時間と件数の累計をまとめた(表2) を作成したいと思います。 表1から作業と作業毎の時間と件数を抽出し、 計算して出力するような式を書きたいのですが、 うまい方法が思いつく方がいらっしゃいましたら、 ご教授いただければと思います。 ※表1と表2はシートを分けたいです。 何卒よろしくお願いします。 (表1) 日付 作業 担当者 作業時間 作業件数 --------------------------------------------- 1月10日 A 太郎 7 500 1月10日 B 花子 8 300 1月11日 A 太郎 7 500 1月11日 C 花子 8 400 1月12日 B 太郎 4 600 1月12日 C 太郎 4 300 1月12日 C 花子 8 500 --------------------------------------------- (表2) 作業 作業時間 作業件数 ------------------------- A 14 1000 B 12 900 C 20 1200 -------------------------
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 色々方法はあるかと思いますが・・・ 一例です。 担当者は無視しても良い訳ですよね? ↓の画像で説明させていただきます。 今回は作業の数がいくらあっても良いように 作業も拾い出し、表示させるようにしてみました。 そのために、Sheet1の方で作業用の列を使わせてもらっています。 Sheet1の作業列F2セルに =IF(COUNTIF($B$2:B2,B2)=1,ROW(A1),"") という数式を入れ、オートフィルでずぃ~~~!っと下へコピーします。 (Sheet2の数式が1000行まで対応できるようにしていますので、そのくらいまでコピーしても構いません) そして、Sheet2のA2セルに =IF(COUNT(Sheet1!$F$2:$F$1000)<ROW(A1),"",INDEX(Sheet1!$B$2:$B$1000,SMALL(Sheet1!$F$2:$F$1000,ROW(A1)))) B2セルに =IF($A2="","",SUMIF(Sheet1!$B$2:$B$1000,$A2,Sheet1!D$2:D$1000)) として、C2セルまでオートフィルでコピーします。 最後にA2~C2セルを範囲指定し、C2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、A列の作業のデータはあらかじめ入力してあれば、 Sheet1の作業用の列は必要ありません。 以上、長々と書きましたが、 参考になれば幸いです。m(__)m
- Cupper
- ベストアンサー率32% (2123/6444)
VLOOKUP関数を使う または ピボットテーブル(機能)を使う 関数の使い方は Excelのヘルプを参照してみてください 例題付きで詳しく説明されています ピボットテーブルの使い方は解説書や解説サイトを探した方が良いかもしれません
お礼
早速の回答ありがとうございます。 ピボットテーブル。 これ、十分かもしれません。 ありがとうございます。
お礼
早速の回答ありがとうございます。 すばらしいですね。 まだ意味を追いきれてないですが、 拡張もできそうなので、ありがたいです。