- 締切済み
複数シートから検索し、その行から15列下までを抽出したい。
使用しているのはWINDOWS XP EXCEL2000です。 マクロ、VBはあまりよくわかっていません。 ひとつのファイルに6sheetあります。 シートY1~Y6があり、シートY1のB1に入力されたデータと同じものをシートY1~Y6全てから検索し、 その行から15列したまでを抽出するということをしたいのです。 現状は1シートのみからの検索で、A3からA17までMATCH関数とINDEX関数が入っていて抽出しています。 (下記のように関数が入っています。) YIシート A3 → =MATCH(B1,T1_A1!D:D,0) B3 → =INDEX(T1_FMRA!E:E,A3,1) YIシート A4 → =A2+1 B4 → =INDEX(T1_FMRA!E:E,A4,1) ↓ ↓ YIシート A17 → =A16+1 B17 → =INDEX(T1_FMRA!E:E,A17,1) これをA1に入力されたデータを全シートから(Y1~Y6)検索、抽出する方法が知りたいのですが・・・ 説明がわかりづらくすみません。 よろしくお願いいたします。
- KIPAFULU
- お礼率85% (23/27)
- オフィス系ソフト
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mitarashi
- ベストアンサー率59% (574/965)
ここまで出来たが、ここが分からないという様に質問しないと、回答がつきにくいでしょう。考え方だけ、回答いたします。 Sub test() Dim c As Range Set c = ActiveSheet.Range("a1") End Sub この意味が理解できていないと、実現は難しいと思います。 お分かりなら、マクロの編集画面で、ヘルプから、findを検索して下さい。 findの使用例で、検索したいのはシートあたり1個と割り切って、 余分な処理を切り捨てると、 With Worksheets(1).Range("a1:a500") Set c = .Find(2, lookin:=xlValues) End With これで、2が入ったセルが、cとして取得できます。 cが取得できたら、c.resize(...)を用いれば、cを起点に?行×?列に拡大して取得できます。 c.まで打ち込むと、インテリセンスという機能で、Rangeのメンバーが表示されますが、 この中に、copyがありますので、resizeしたものをcopy してpasteすれば、抽出できますね。(このあたりは、マクロを自動記録したコードを参考にしてください) Worksheets(1)の所の1を変数に変えて、1~6までループすれば、6シートに対して処理ができます。 ご自分のやりたい事が載っている参考書を購入して、手を動かしてみるのがVBA習得の早道だと思います。
関連するQ&A
- 列と行での検索
Excel2000の関数で質問です。 関数やVBAは本に載っているような物を修正して使っているので初歩的な事しかわかってません。 A B C D E 1 A会社 B会社 C会社 D会社 2 肉 100 200 300 400 3 野菜 100 200 300 400 4 卵 200 200 200 200 5 卵1 100 100 100 100 6 牛乳 300 300 300 300 このような表があるのですが、 A10にA会社 A11に卵 といれると、卵と卵1の合計の300がでてくるような関数はありますか? A列は1文字とは限らず、最大10文字位あります。(あいうえお1など) INDEXとMATCHをつかって卵の200だけは出せたのですが、どうしても合計が出せません。 作った関数は =INDEX(B1:E6,MATCH(A11,A2:A6,0),MATCH(A10,B1:E1,0)) です。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 2つの条件からシート2に抽出
シート1 A1は手入力D4手入力、H2は=D2&C2 担当者と週で検索して抽出する式を教えて下さい。何度もすみません。 上手く出来なくて1行しか抽出しないんです。 上記の表から1週目だったら、1週目の担当者のデータをシート2の表に抽出 週2だったら2週目の担当者データを抽出 A1・D1は手入力 A3は=IF(COUNTIF(Sheet1!D$2:D$1000,B$1)=0,"",MATCH($B$1&$D$1,Sheet1!$H$2:$H$1000,0)) 上記の様にシート2に表示したいんです。 細かく教えて下さい。何度やっても1行目のデータしか抽出しないんです。 A3=IF(COUNTIF(Sheet1!D$2:D$1000,B$1)=0,"",MATCH($B$1&$D$1,Sheet1!$H$2:$H$1000,0)) B3=IF($A3="","",IF(VLOOKUP($A3,Sheet1!$A$2:$H$1000,COLUMN(B1),0)="","",VLOOKUP($A3,Sheet1!$A$2:$H$1000,COLUMN(B1),0))) A4の2行目以降1になってしまって同じ物しか出ないんです。 Aの番号の抽出方法の式を教えて下さい。
- ベストアンサー
- SE・インフラ・Webエンジニア
- 条件にあう複数の行を別のシートに抽出する
例 データ Sheet2のA1に(条件の)2 Sheet1 A列 B列 C列 D列 コード 名前 計数 1 A 12 2 B 13 1 2 B 14 2 4 D 15 5 E 16 6 F 17 2 B 18 3 3 C 19 5 E 20 D列は =IF(A2=Sheet2!$A$1,MAX($D$1:D1)+1,"") 下方向に式を複写。 Sheet2に行って =INDEX(Sheet1!$A$1:$D$100,MATCH(ROW()-1,Sheet1!$D$1:$D$100,0),COLUMN()) 式を右方向に式複写 A2:C2の式を下方向に式複写。 結果 2 2 B 13 2 B 14 2 B 18 #N/A #N/A #N/A ーー #N/Aを空白にするには ROW()-1がSheet1のD列のMAXを超えていると空白と いうIF文を加えると良い。 以前、上記のように質問のご回答を頂いたのですが、更に質問があって再度聞きたくて、再質問します。上記の場合は、「2」だけでしたができました。それで後の2以外の「1~6」について、Sheet3・4・5・6・7に抽出したいと思いますが、関数では無理でしょうか。初心者で色々な記事もみますがよくわかりません、お教え下さいませんでしょうか、お願いします。
- ベストアンサー
- オフィス系ソフト
- 連続していない日付データからの抽出
エクセルで、 A B 1 日付 売上 2 11/21 900 3 11/22 2000 4 11/26 1800 5 11/27 1300 D E 1 日付 前日比 2 11/21 **% 3 11/22 **% 4 11/26 **% 5 11/27 **% とあります。 そこで、 G H I 1 日付 売上 前日比 2 任意 (抽出) (抽出) 3 と、Gに日付を入力したらH、Iにデータが抽出されるように関数を作りたいと思います。 Hには =INDEX(A2:B5,MATCH(G1,A2:A5,0),2) Iには =INDEX(D2:E5,MATCH(G1,D2:D5,0),2) と入力して抽出をしましたが、 例えばG列に元データには無い、「11/23」が入力されたときは、11/23よりも先で1番にくる11/26のデータを抽出するようにしたいのですが、どうしたらいいでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで、条件にあう複数の行を別のシートに抽出する
《どなたか、お教え下さい》 エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。 「sheet1」の下記の基本データを「sheet2」に「得意先」ごと「日付」の早い順にまとめたいのでが。関数を使ってできないものか、どなたかお教え下さい。「マクロ」や「Access」は使用したことがないので、関数を使ってやりたいと思いますが、できるものでしょうか。よろしくお願いします。 sheet1 番号 得意先 日付 商品名 商品詳細 金額 備考 1 A 2 B 2 B 4 D 5 E 6 F 2 B 3 C 5 E A B 番号 得意先 1 A 2 B 得意先名は、番号を入力することで表示されるように 3 C 関数「VLOOKUP」を使って表示させるようにしていま 4 D す。 5 E 6 F
- ベストアンサー
- オフィス系ソフト
- エクセルでシート10の表からシート1から9の表に数値を自動抽出したい
エクセルでシート10の表からシート1から9の表に数値を自動抽出したいのですが、 シート10 TP店 TW店 NP店 TM店 9 8 4 2 シート1 売上 TP店 ?? シート2 売上 TW店 ?? TP店売上9 TW店売上8 NP店売上4 TM店売上2 です かなりデータが多く手作業ではなく関数で一発入力したいのです。つまりシート1から10までありシート1はTP店、シート2はTW店の個々の売上データが入っています。シート10に全体の売上データが入っていて、シート10を参照してシート一つずつにアナログで=Sheet1!A1をいれていく、又はコピーすると大変なのでシート1に入れる関数と他のシートの関数をすべて同じにしたいのです。で自動で店の売上を入力するような関数ありますか 以前質問した際に =IF($B$1="","",INDEX(Sheet21!$B$2:$E$5,MATCH($A2,$A$2:$A$4,0),MATCH(B$1,Sheet21!$B$1:$F$1,0))) と答えをいただきましたが、さっぱりわかりません。わかりやすく説明していただけるとありがたいです。
- ベストアンサー
- オフィス系ソフト
- excel2003 複数条件検索後の合計を表示
こんにちは。 excel2003で在庫表を作成しているのですが複数検索で一致した項目の積の返し方が判らないので教えて頂きたいです。 色々試しましたが関数のネストが上手く出来ず困っています。 VBAは使えません。 ご面倒ですが関数で教えて頂けたら有難いです。 勉強不足で申し訳ないです。 画像の左のシート・商品の出庫(入庫は同じシートをコピーして使っています) 画像の右のシート・商品の在庫 画像の右シートには何とか条件検索の抽出が出来ましたが、同じ商品で同じカラーの合計数量を返したいです。 右シートには次の関数を入力しています。 =IF(OR($A$3="",COUNTIF(左のシート!$E$3:$E$500,$A$3&B3)=0),"",INDEX(左のシート!$D$3:$D$500,MATCH($A$3&B3,左のシート!$E$3:$E$500,0))) 説明不足で判りづらいかもしれませんがよろしくお願い致します。
- ベストアンサー
- その他([技術者向] コンピューター)
- エクセルで複数シートから、検索して抽出
はじめまして、右も左も分からない初心者です。 説明出来ないんですが、よろしくお願いします。 【ご質問内容】 エクセルは、XPを使用しています。 エクセルのVBAで、指定したキーワードを 含むデータを抽出したいと思っています。 【例】 Sheet1 A B C D E 1 番号 氏名 郵便番号 住所 メールアドレス 2 1 ○ △ 大阪府 ○○ 3 2 △ ○ 茨城県 ○○ Sheet2 A B C D E 1 氏名 番号 郵便番号 住所 メールアドレス 2 ○ 1 △ 福岡県 ○○ 3 △ 3 ○ 茨城県 ○○ と各シートに、列がそれぞれバラバラになっています。 茨城県を検索すると、新しいシートに、 Sheet3 A B C D E 1 氏名 番号 郵便番号 住所 メールアドレス 2 2 △ ○ 茨城県 ○○ 3 A B C D E 4 氏名 番号 郵便番号 住所 メールアドレス 5 △ 3 ○ 茨城県 ○○ という風に、抽出したいと思っています。 どうしたらいいでしょうか?? よろしくお願いします。
- 締切済み
- オフィス系ソフト
- 複数シートから空白ではない行をすべて抽出
タイトル行A1:D1、データの中身は、A2:D11の全く同じ様式のシートが複数あります。シート名はバラバラです。 全シートの空白ではない行を全て別の集計シートに抽出したいです。 空白行は抽出しません。 これを関数でどのようにつくればよいのでしょうか? 関数で無理ならVBAでお願いします。
- ベストアンサー
- Excel(エクセル)
- エクセル 複数列を検索し左3列目を返す
よろしくお願いします。 シート1の5列(E,J,O,T,Y)の中から,該当するセルを検索,該当セルの左隣3列目のセルを返す関数を考えています。検索条件の重複はありません。 検索結果を表示するシートをシート1とは別に作成します。 A列に検索条件を入力し,B列に結果を返したいです。 例シート1 A B C D E F G H I J ・・・・・ ID 品名 項目 単価 1年目 ID2 2品名 2項目 3単価 2年目 ・・・・・ 1 1 a b c 1-1 e f g h 1-11 2 2 i j k 2-2 m n o p 2-22 検索結果 A B 1 1-1 a 2 2-22 n このような感じのファイルになっています。IFやLOOKUPなどを試しましたが,複数列をうまく検索する関数を作成することができませんでした。 また,検索対象となるシートが複数になる可能性もあり,その際にも対応できるとありがたいです。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
mitarashi様 お礼が遅くなってしまい大変申し訳ございませんでした。 ご指摘のあるように質問が不明瞭でしたことをお詫びいたします。 にもかかわらず、ご回答くださいました本当にありがとうございました。 今回は急ぎの仕事でしたので、現状の検索抽出方法でしのぎました。 これからの事も考えVB、マクロはあまりよくわからないのですが、 mitarashiさんの教えていただいた内容をまずは理解できるよう 勉強していきたいと思います。 本当にありがとうございました。