• ベストアンサー

Excelの抽出(関数)について

下記のAという表からBの表へ各自の4月度、5月度の結果を反映させたいのですが、 関数では複数条件になり、無理なのでしょうか? 【A】 A B C D 1 名前 日付 結果 月 2 田中 4/10 200 4月度 3 山田 4/12 210 4月度 4 小林 4/14 240 4月度 5 田中 5/10 180 5月度 6 小林 5/20 220 5月度 【B】 1 名前 4月度 5月度 2 小林 240 3 田中 200 4 山田 210 よろしくお願いいたします。

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

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

No.1です。 Excel2003以前のバージョンでSUMPRODUCT関数を使用しない!となれば 当然配列数式もダメ(SUMPRODUCT関数も配列数式になります)ですので PCの負担を軽減する方法としては↓の画像のようにSheet1の作業用の列を設けるのが一番良いと思います。 作業列E2セルに =IF(COUNTBLANK(A2:C2),"",A2&D2) という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 これ以上データはない!というくらいコピーしておいても構いません。 そしてSheet2のB2セルに =IF(OR($A2="",B$1=""),"",SUMIF(Sheet1!$E:$E,$A2&B$1,Sheet1!$C:$C)) という数式を入れ列・行方向にオートフィルで画像のような感じになります。m(_ _)m

masapiki
質問者

お礼

素晴らしい!! 完璧です! こちらのわがままな要望にも丁寧にご回答くださり、 本当にありがとうございました。 お教えいただいた数式を大切に使わせていただきたいと思います。 本当にありがとうございました(^o^)

その他の回答 (1)

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

こんばんは! 一例です。 ↓の画像で左側のSheet1のデータをSheet2に集計するようにしてみました。 尚、Sheet2のA列「名前」と1行目の「○月度」(文字列)は入力済みだとします。 まずSheet1のD2セルに =IF(B2="","",MONTH(B2)&"月度") という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 これでD列ば数値ではなく、○月度という文字列で表示されます。 最期にSheet2のB2セルに =IF(OR($A2="",B$1=""),"",SUMIFS(Sheet1!$C:$C,Sheet1!$A:$A,$A2,Sheet1!$D:$D,B$1)) という数式を入れ列・行方向にオートフィルでコピーすると 画像のような感じになります。 ※ 上記数式はExcel2007以降のバージョンでの数式になります。もしお使いのバージョンがExcel2003以前の場合 SUMIFS関数は使用できませんので =IF(OR($A2="",B$1=""),"",SUMPRODUCT((Sheet1!$A$1:$A$1000=$A2)*(Sheet1!$D$1:$D$1000=B$1),Sheet1!$C$1:$C$1000)) という数式にしてみてください。m(_ _)m

masapiki
質問者

補足

素晴らしいご回答をくださり、感謝申し上げます。 Excelのバージョンを書き忘れましたが、2003です。 2003の場合、SUMPRODUCTを使う数式をお教えいただきましたが、 他の関数では求めることが出来ないでしょうか? SUMPRODUCTはExcelの計算がかなり重く感じられ、 以前もSUMPRODUCTを使ってみたことがありますが、 結局、シートを増やしたりして、 別の関数を使用しました。 お忙しいかと思いますが、 他の関数での数式もお教えくださると助かります。 よろしくお願いいたします。

関連するQ&A

  • [エクセル]複数条件を抽出する関数

    エクセル初心者級です。 (関数はある程度理解できますが、マクロはできません) 今、休暇管理のエクセルシートを作っていて 下のような表を作成しています。     A      B      C     D     E     F… 1 [氏名]    [合計]   [4/1]  [4/2]  [4/3]  [4/4] 2 山田太郎  1.5日        半休        全休 3 田中花子  0.5日        半休 4 鈴木美穂  1.0日              全休 このデータを基に別シートのカレンダに落とし込みたいのです。     A     B     C     D     E     F     G 1 2011年4月 2  日曜   月曜   火曜   水曜   木曜   金曜   土曜 3                                 1 2 4                                   山田・田中 5   3     4     5     6     7     8 9 6 鈴木    山田 A1セルに年月を入れたら自動で日付が入るようカレンダは作成しました。 後は、基シート(上の表)でその該当日に 全休なり半休なりの言葉を入れている人を抽出し カレンダの日付の下に名前を入れられるようにしたいのです。 (1)カレンダと表の日付が一致していて (2)その日付の表の所に何かしらの文字が入っている人 を自動で抽出したできるようにしたいのですが 何か良い方法はないでしょうか。 このシートはパソコンを使い慣れていない人も使用するため できれば関数で一発でできるようなものがあれば有りがたいのですが… アドバイスをいただけないでしょうか。 よろしくお願いいたします。

  • エクセルで条件を満たすものを抽出させる(関数で)

    シート1にタイムを計った一覧があります。    A   B   C 1 山田   2  3.5 2 田中   5  4 3 根岸   2  2.3 4 村井   5  3 5 鈴木   5  3 シート2には社員名簿があります。社員は増減があるため更新したら、それも反映させたいです。   A   B    1 山田 社員 2 根岸 社員 3 村井 社員 そして、シート3に社員で、かつB列が2の情報だけを表示させたいのです。    A   B   C 1 山田  2   3.5 2 根岸  2   2.3 シート3にはどのような関数を入れたらよいのでしょうか?? よろしくお願い致します。 ちなみにVistaです。  

  • エクセルの関数を使って・・・

    まず 氏名 商品B 商品A 商品C 売り上げ数 山田 2000    0  500  2500 山田 500   100   100  700 河合 100   100   100  300 田中 500           500 山中 500           500 と続いていく簡単な売り上げの表があります。 氏名のところは入力規制でリストから選択できるようにしています。 この表を集計して    商品B 商品A 商品C 山田 3000   100  600 河合 田中 山中  このような集計表に個人別の商品別総計を出すように関数 入れたいのですが何卒よろしくお願いします。

  • エクセルのカウントする関数教えてください。

    下記のような営業日報があります。 【営業日報】      営業担当  販売商品      2月3日   山田    商品A 2月3日   田中    商品B 2月3日   井上    商品B   2月5日   田中    商品A   2月7日   山田    商品C 2月8日   山田    商品A   【集計表】        商品A   商品B  商品C     山田   ★個    ★個   ★個  田中   ★個    ★個   ★個  井上   ★個    ★個   ★個 営業日報を集計した際の表の、★印に 販売合計数を表記させたいのですが、 どんな関数を使用すればよいでしょうか? 宜しくお願いします。

  • エクセル関数

    関数を使用して表を作成したいのですが、どのように組み立てたら いいのかわかりません。どなたか教えていただけませんか。 A列   B列 50,000  山田 10,000  田中 30,000  佐藤 20,000  佐藤 上記のようなリストがあり、これらを担当者別に集計したいのですが、 金額をまとめるにはどのような関数を組みあわせたらいいでしょうか。 宜しくお願いします。

  • エクセル2000で複数の検索条件検索・・・

    このような表があります。 入金日 氏名 商品A 商品B 商品C 1/1  山田  200   100  50 1/2  山田       50  50  1/1  田中  100   50   30 1/3  川口  100   20   20 1/4  川口  100   600  10 のような表が延々と続くわけですが、この表から 1/1売上げ 氏名 商品A 商品B 商品C 計 田中 川口 山田 のような表を作りたいのです、上の部分の1/1の日付の部分を入力規制のリストで日付を変えるとポンっとその日付の表計がでるようにしたいのですが、例えば田中の商品Aの項目のところに関数を入れようとしたのですが、SUMIFではだめですよね?日付が一つの条件で二つの条件が田中であることそれで商品Aの売上げ。三つの条件をいれなくては ならないのですが、もうお手上げです。 だれか何卒よろしくお願いします。

  • エクセルのカウントする関数教えてください。(データ付)

    下記のような営業日報があります。 【営業日報】      営業担当  販売商品      2月3日   山田    商品A 2月3日   田中    商品B 2月3日   井上    商品B   2月5日   田中    商品A   2月7日   山田    商品C 2月8日   山田    商品A   【集計表】        商品A   商品B  商品C     山田   ★個    ★個   ★個  田中   ★個    ★個   ★個  井上   ★個    ★個   ★個 営業日報を集計した際の表の、★印に 販売合計数を表記させたいのですが、 どんな関数を使用すればよいでしょうか? 宜しくお願いします。

  • エクセル関数で困っています。

    エクセル関数で困っています。 Aの表とBの表を統合したいのです。 ●A表 名前  身長  体重 田中  165   65 佐竹  167   45 伊藤  124   35 ● 名前  胴囲  座高 伊藤  70   60 佐竹  65   78 鈴木  62   42 これを名前をキーにして統合した表を作りたいのです  関数を教えてください。 よろしくお願いします。

  • EXCELで重複したデータの処理について

    氏名 | 点数 ----------- 山田 | ----------- 鈴木 | ----------- 小林 | ----------- 高橋 | ----------- 田中 | という表があるとします。 氏名 | 点数 ------------ 山田 | 80 ------------ 鈴木 | 100 ------------ 小林 | 70 ------------ 高橋 | 80 ------------ 田中 | 80 というように点数を入力すると 順位 | 名前 | 点数 ------------------- 1 | 鈴木 | 100 ------------------- 2 | 山田 | 80 ------------------- 2 | 高橋 | 80 ------------------- 2 | 田中 | 80 ------------------- 5 | 小林 | 70 のような表を自動的に作成できるようにしたいのですが、どうもうまくいきません。 順位と点数の並び替えは比較的簡単にできたのですが、それに対応した名前の並び替えがうまくできないのです。 VLOOKUP関数を使用して得点に対応した名前を表示させようとしたのですが、 順位 | 名前 | 点数 -------------------- 1 | 鈴木 | 100 -------------------- 2 | 山田 | 80 -------------------- 2 | 山田 | 80 -------------------- 2 | 山田 | 80 -------------------- 5 | 小林 | 70 となってしまい、80点の取得者が全て山田になってしまいました。 このような場合、どのようにすれば正常に並び替えを行うことができるのでしょうか。 言葉足らずで申し訳ありませんが、よろしくお願い致します。 OSはWindowsXP、ソフトはEXCEL2002を使用しています。

  • エクセル2003を使用しています。

      A    B     C  D 1 田中 11/12 2 田中 11/12 3 山田  4 大木 11/11  田中 2 5           山田 0 6 田中       大木 2  7 大木 11/9       ・       ・       ・ 分かりにくかったらすみません(>_<) 私は、提出された書類の管理をしているのですが、 上の表で知りたいのは、Dセルの部分です。 A・・・出した人の名前。   ※A5の様にまだ誰がやるか決まっていない部分もありますが、最終的には決まります。   ※行は下まで、300行くらいになります。 B・・・提出した日にち。     提出された日に、日付を入れます。   ※B3、B6は、担当は決まっていても、まだ提出はされていない状況です。 C・・・全員の名前。 D・・・誰(Cセル)が、今いくつ提出しているかを、数えたいです。 関数のHP等も見て、DCONTA等を試しましたが、自分では解決出来ませんでした・・・。。 お分かりの方、どなたか教えて下さい!

専門家に質問してみよう