- ベストアンサー
Excelの抽出(関数)について
- みんなの回答 (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
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 ↓の画像で左側の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
補足
素晴らしいご回答をくださり、感謝申し上げます。 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)その日付の表の所に何かしらの文字が入っている人 を自動で抽出したできるようにしたいのですが 何か良い方法はないでしょうか。 このシートはパソコンを使い慣れていない人も使用するため できれば関数で一発でできるようなものがあれば有りがたいのですが… アドバイスをいただけないでしょうか。 よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- エクセルで条件を満たすものを抽出させる(関数で)
シート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です。
- ベストアンサー
- その他(インターネット・Webサービス)
- エクセルの関数を使って・・・
まず 氏名 商品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 山田 ★個 ★個 ★個 田中 ★個 ★個 ★個 井上 ★個 ★個 ★個 営業日報を集計した際の表の、★印に 販売合計数を表記させたいのですが、 どんな関数を使用すればよいでしょうか? 宜しくお願いします。
- ベストアンサー
- その他(業務ソフトウェア)
- エクセル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等を試しましたが、自分では解決出来ませんでした・・・。。 お分かりの方、どなたか教えて下さい!
- ベストアンサー
- オフィス系ソフト
お礼
素晴らしい!! 完璧です! こちらのわがままな要望にも丁寧にご回答くださり、 本当にありがとうございました。 お教えいただいた数式を大切に使わせていただきたいと思います。 本当にありがとうございました(^o^)