- ベストアンサー
データから指定の番号のみを抽出する方法
BVA初心者です。もし、お分かりの方がいましたら教えていただけたら幸いです。 いま、データから任意の番号のデータを抽出したいと思っています。 具体的には A B C D E code番号 商品名 値段 割引 産地 1 234 甲 100円 20% 東京 2 345 乙 130円 15% 神奈川 3 356 丙 220円 5% 千葉 4 669 丁 55円 0% 栃木 5 432 戊 110円 0% 茨城 6 884 己 130円 15% 群馬 という表があったとしたら、 ぬきだしたいcode番号が、345、669、884だとすれば A B C D E code番号 商品名 値段 割引 産地 1 345 乙 130円 15% 神奈川 2 669 丁 55円 0% 栃木 3 884 己 130円 15% 群馬 という表を作成したいのですが。 元のデータも数が多く、また、抜き出したいデータも10程度で毎日手作業でするには面倒なので関数やマクロなどでできればと考えています。 ちなみにcode番号の複重はありません。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
色々のやり方が有る。 >code番号の複重はありません、が好都合で (1)VLOOKUP関数でやる これをVBAでVLOOKUP関数を使ってやる (2)フィルタ、フィルタオプション これをVBAでやる (3)Find関数でやる (4)全行をIF文で探して見つける。 >データも10程度で、と多い場合は、それをテーブル化(配列化)してVBAコードを工夫する。 (5)imogasi方式(Googleで照会のこと)説明略。 ーー (2)辺りが、マクロの記録をとり、毎日変化する部分を適当にVBAコードを手直ししてできるのでお勧めかなと思う。
お礼
いろいろなやり方があるんですね。 参考になりました。 VBAはまだまだ理解できていないので、VLOOKUP関数でやることにしました。 ありがとうございました。
上の表がSheet1にあるとして、下の表の項目名とコード番号を入力後、次のように式を入力し、下へコピーしてください。 B2:=VLOOKUP($A2,Sheet1!A:E,2,FALSE) C2:=VLOOKUP($A2,Sheet1!A:E,3,FALSE) D2:=VLOOKUP($A2,Sheet1!A:E,4,FALSE) E2:=VLOOKUP($A2,Sheet1!A:E,5,FALSE)
お礼
回答ありがとうございます。 この方法でもできました。 コード番号を入れ替えば毎日簡単にできますね。 ありがとうございました。
- n-jun
- ベストアンサー率33% (959/2873)
1行目を項目行とします。 Excel(エクセル)基本講座:フィルタ オプションの設定(データ抽出) http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter3.htm 【一つの条件で抽出する】を参照。 1)空いているセルに、項目:code番号、その下に抜き出したいcode番号を1セルに1個入れていく。(縦に) 2)A1をクリックしてから【データ】→【フィルタ】→【フィルタオプションの設定】 ・その場で抽出したければ【選択範囲内】、別の場所にしたければ【指定した範囲】 ・リスト範囲は自動ではいる(ハズ? 入らなければ指定する) ・検索条件範囲は1)の範囲を入れる。 ・【指定した範囲】を選んだら、出力したい範囲の左上のセルを指定する。 とやれば出来ると思います。
お礼
ありがとうございます。できました。 (^_^ ) 投稿する前に、このフィルタオプションも試してみたんですけど、やり方が間違えてました。 助かりました。
お礼
ありがとうございます。 IF関数も併用させてもらいました。 オートフィルだと少しズレてしまうので、 =IF($A2="","",VLOOKUP($A2,a!$A$2:$AR$226,2,FALSE)) (sheet名a、A2からAR226までの表) これの列位置(FALSEの前の2のところ)を全部手直ししました。 参考になりました。ありがとうございます。