条件に合う行を別シートに抽出する方法

このQ&Aのポイント
  • エクセルで条件に合う行を別シートに抽出する方法について教えてください。
  • 条件1では、Sheet1のK列で確認がOKとなっている行をSheet2に抽出します。
  • 条件2では、Sheet1のK列で随時OKとなっている行をSheet2に追加します。
回答を見る
  • ベストアンサー

条件に合う行を別シートに抽出

エクセルで条件に合う行を別シートに抽出したいです。  出荷確認シートとします。     A    B   C    D    E    K    M   N   O     P   抽出列  No.  件名  工事店  出荷  確認  担2  担3  名称   作業列・・・・OKで番号 30行 OK 101-1 ふじ  あああ        OK     松田  みかん    1            以降     101-2 ふじ  あああ              松田  りんご                OK 102-1 ビル  いいい       OK     伊藤  いちご      2            OK 103-1 神社  ううう         OK     神田  アイス     3               103-2 神社  えええ               神田  レモン                    ・  ・    ・       ・      ・    ・     ・         ・  ・    ・       ・      ・    ・     ・        OK   ・  ・    ・             OK    ・     ・       4 上記がSheet1に入力されています。 条件1  ・Sheet1K列 確認でOKを入力された行をSheet2に抽出したいのです。       B   C     D    E    M    N    O            No.  件名  工事店  出荷   担2   担3  名称          101-1 ふじ  あああ            松田   みかん        102-1 ビル  いいい           伊藤   いちご              103-1 神社  ううう             神田   アイス  条件2  ・Sheet1K列 随時OKを入力された行をSheet2に追加           101-1 ふじ  あああ         松田   みかん        101-2 ふじ  あああ         松田   りんご       102-1 ビル  いいい        伊藤   いちご             103-1 神社  ううう         神田  アイス       103-2 神社  えええ          神田  レモン             条件3  ・出荷を確認後はその行を削除しますので、残りのOK分をSheet2に抽出後したもの       101-1 ふじ  あああ         松田  みかん         101-2 ふじ  あああ         松田  りんご       103-1 神社  ううう          神田  アイス とSheet2に表示させたいです。 A抽出列には=IF(B30="","",TEXT(B30,"OK"))を入力し、Sheet1P作業列がK列に OKを入力されるたびに番号が記入され、順序を行頭から若番として、A抽出列とP作業列を参照等 しながらと頭の中ではイメージしていますが・・・。 過去の分を検索したら、似たようなので逆のパターンがありました。 エクセルは2000です。文字位置が上手く合ってないですが 皆様のお知恵をお願いいたします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 代表でSheet1のB列を抽出する数式ですので、別の列は数式内のINDEX(Sheet1!B:B部分を変更して下さい。 Sheet2のB2に次の数式を入力、入力完了時にshift+ctrl+enterキーを同時押下し、下方向に必要分コピー =IF(COUNTIF(Sheet1!$K:$K,"OK")>=ROW(A1),INDEX(Sheet1!B:B,SMALL(IF(Sheet1!$K$2:$K$100="OK",ROW(Sheet1!$K$2:$K$100),999),ROW(A1))),"")

hirota3310
質問者

お礼

お礼が大変遅くなり 失礼いたしました。 実際のシートで確認するのに時間がかかりましたが、上手くいきました。 ありがとうございます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

こういうのは関数では式が複雑になって難しい。 私は、抜き出し問題は、今まで「imogasi方式」で説明してきたが。 Googleで「imogasi方式」で照会すれば過去の質のオ回答が沢山出てくる。 ーー フィルタオプションの設定など出来ないか考えること。(下記) ーー やはりVBAを使えるということで考えないとダメでしょう(エクセルなんて層複雑なことが出来るしクン見のものではない。 ソフトが組んであるものが存在するか(一部は操作の形でメニューにあるが)かどうか、プログラムを組めるか問題だ。 ーー Sheet2の元データ --は空白セル 済 商品 数量 ok aa 1 ーー bb 2 ーー cc 3 ok dd 4 ーー ff 5 ーー gg 6 ok ii 78 ・・・ を名前をつける(挿入ー名前ー定義)。「データ」という名前にする(何でも良い)。 Sheet3で B2:B3に 済 ok データーフィルターフィルタオプションの設定 指定した範囲にチェック リスト範囲  データ 検索条件範囲 B2:B3 抽出範囲 B5:D17(行数は余裕を持って適当に) OK ーー 結果 済 商品 数量 ok aa 1 ok dd 4 ok ii 78 ーーー 条件を B2:B3に 済 <>ok にすると、OK以外が出る。 ーーは空白セル 済 商品 数量 ーー bb 2 ーー cc 3 ーー gg 6

関連するQ&A

  • Sheet1のデータを条件で行ごと抽出するVBA

    ExcelのVBAについて質問です。 Sheet1  | A | B |  C  |  D | E 1| 5/12|青森|出荷済|11個|りんご 2| 5/12|静岡|準備中|10缶|お茶 3| 5/12|愛媛|未出荷|21個|みかん 4| 5/12|新潟|未出荷|99粒|おこめ 5| 5/12|栃木|出荷済|15個|巨峰 こんなシートがあります。 これを、シート状のボタンをクリックしたときに、 「C列が"出荷済"または"準備中"の行だけ抽出して、列を入れ替えながらSheet2に並べる」 というVBAを組みたいです。 ボタンを押した後Sheet2がこんな感じになるようにしたいです。 Sheet2  | A  | B | C |  D | E 1|りんご|11個|5/12|青森|出荷済 2|お茶 |10缶|5/12|静岡|準備中 5|巨峰 |15個|5/12|栃木|出荷済 列の入れ替えはこのような感じです (Sheet1⇒Sheet2) E列⇒A列 D列⇒B列 A列⇒C列 B列⇒D列 C列⇒E列 行はSheer1の順番をSheet2でも抽出されない行を詰める形で維持したいです。 また、ボタンを押されるたびSheet2が全て上書きされる形で構いません。 抽出と入れ替えのヒントだけでもお教え頂ければ自分でやってみたいと思います。 よろしくお願いいたします。

  • エクセル 2枚のシートの違いを抽出したい

    目を通していただきありがとうございます。 エクセルは全く詳しくないため、質問させていただきます。 sheet1とsheet2に各2000行ほどの表があります。 sheet1 A列(商品) B列(産地) C列(定価) D列(特価) E列(数量)  みかん    愛媛     100      80       500  みかん    静岡     120      85       400  オレンジ  アメリカ     150      90       100   sheet2 A列(商品) B列(産地) C列(定価) D列(特価) E列(数量)  みかん    愛媛     100      80       300  オレンジ  アメリカ     150     100       100  いちご     福岡     300     150       100  みかん    静岡     120      70       400 それぞれ「1行目のみかん」はA~D列まで同じ値で、E列のみの違いですので、 抽出の必要はありません。 sheet2の3行目のいちごはsheet1にはありませんので、これも抽出の必要はありません。 sheet1の2行目とsheet2の4行目のみかん、 sheet1の3行目とsheet2の2行目のオレンジ、はD列(特価)の違いがあります。 この<D列のみ違いがある>ものを行単位でsheet3に抽出したいのですが、 何か良い方法(関数等)がありましたら、教えていただけないでしょうか? なお、表題に「エクセル」と書きましたが、実際はKingsoftのSpreadsheets 2012を使用しています。 基本的な関数でしたらそのまま使えるようですので、エクセルとして書かせていただきました。 よろしくお願いいたします。     

  • エクセル 指定列で0値以外の行を別のシートに自動で行全体を抽出

    ある列のデータが0値の(空白を含む)とき、それ以外の行を別のシートに自動的に抽出するシートを作成したい。 例 210 0 山田 211   森 212 1 伊藤 213 2 島   ↓ 212 1 伊藤 213 2 島   別のシートに自動的に表示させる

  • 条件に一致する行データを別シートに抽出する

    日付別の各データが入力された総括のシートがあり「0」とします。 別に13個の項目別シートを固定の様式で作ってあります。「1~13」とします。 シート「0」のB2~B30までセル上に入力するデータが1~13の整数として入力する訳ですが、その入力されたデータセルの中で該当する数字を条件として抽出し目的のシートの決められた座標から順に行を開けずに表示したいのです。 例えばシート「0」のB列に6という数字が入力されていたら同じ行A、C、Dのデータを全てシート「6」のA、B、Cに表示させたいのです。 同じように他の数字も該当するシートに該当する数字の全てを表示したいのです できるだけ判り易く教えてくださいお願いします。

  • エクセルで複数の条件範囲に合う行を別シートに抽出

    エクセルの関数で複数の条件範囲に合う行だけをを別シートに抽出したいのですが、 どうしても方法が分かりません。 誰か教えて頂けないでしょうか? 検索は範囲です。 宿泊日○○○○○○○○~○○○○○○○○(例20111110~20240204) 人数 ○人~○人 (○の中に数字が入ります) 西暦日付と人数が両方一致している行を別シートに抽出したいです。 バージョンは2007.2010両方とも問題ないです。 Sheet1    A     BCDEFGHIJKLMN   O 1 宿泊日                 人数 2 20100223               20 3 20110103               5 4 20111118               9 5 20120505               13 6 20121010               7 8 20120224               32 9 20121121               28 Sheet2    A      B    C   D    E   FGHIGKLMN    O 1 検索 2 宿泊日 20110101 ~ 20121111 3 人数     8    ~   30     人 4 5 宿泊日                                  人数 6 20111118                                   9 7 20120505                                  13 Sheet1、A列の宿泊日とO列の人数の範囲が一致するものを、 Sheet2の検索から、行ごと抽出(複数)し、Sheet2に反映する関数を教えて頂けないですか? ちなみにSheet1は常に更新され、入力をする事が出来ませんので、 Sheet1に手を加えることのなく、Sheet2のみに関数を入れて処理出来る関数でお願いします。 いろいろ検索して探しましたが、複数抽出する方法がわかりませんでした。 よろしくお願いいたします。

  • 表から指定した行のみを別シートに抽出するには

    エクセル2002 ある表から、集計表として別のシートに行を抽出できる関数をおしえてください。 【シート1】      O列  P列  Q列  R列  S列  T列  U列    行9  種類  厚さ   w    H  枚数  か所   計 行10    行11 AAA  t6.8  1500  2000   3    3     9   | | 行15 AAA   t3   1000  2000   2    1     2 行16 bbb   t6.8  500   1500   1    3     3  : : という表から別のシートに 集計表として 【シート1】集計表AAA     O列  P列  Q列  R列  S列  T列  U列    行3  種類  厚さ   w   H   枚数 か所   計 行4  AAA  t3   1000  2000   2    1    2 行5  AAA  t6.8  1500  2000   3    3    9  | | 行15 AAA   t3   1000  2000   2    1    2 行16    : のように抽出する関数を教えてください。 出来れば集計表の横に種類ごとに選択したら、種類ごとに表示が変わるようならばよいのですが。。。  関数初挑戦のため大変なことになりそうな気もします。。。   皆様、ご教授のほどよろしくお願い致します。

  • VBA 特定の行を別シートへコピー・削除

    下記のように、VBAで特定の行を抽出して別シートへコピーし、コピーした行については元リストデータを削除したいです。 具体的には、【出荷sheet】(C列注文番号は、出荷があった時に入力済)へ、注文番号に対応する行を【リストsheet】から抜き出してコピーし、コピー後は、【リストsheet】から該当行を削除したいです。 検索により調べてもうまく合致する回答が見当たらず困っています。 VBAの理解度は未熟ですが、何卒ご教授いただけると幸いです。 【リストsheet】 A列 B列  C列   D列 ・ ・ ・ J列 No. 日付 注文番号  品名 ・ ・ ・ ・ 1  1/1   A111   鉛筆  ・ ・ ・ ・ ←コピー後、削除  2   1/2   B222   ペン  ・ ・ ・ ・ 3    1/5  C555 消しゴム・ ・ ・ ・ ←コピー後、削除  ・ ・   ⇓ 【出荷Sheet】 A列 B列  C列   D列 ・ ・ ・ J列 No. 日付 注文番号  品名 ・ ・ ・ ・ 1  1/1 A111   鉛筆   ・ ・ ・ ・ 3   1/5   C555 消しゴム・ ・ ・ ・

  • エクセルで複数の条件範囲に合う行を別シートに抽出

    エクセルの関数で複数の条件範囲に合う行だけをを別シートに抽出したいのですが、 どうしても方法が分かりません。 誰か教えて頂けないでしょうか? 検索は範囲です。 宿泊日○○○○○○○○~○○○○○○○○(例20111110~20240204) 人数 ○人~○人 (○の中に数字が入ります) 西暦日付と人数が両方一致している行を別シートに抽出したいです。 バージョンは2007.2010両方とも問題ないです。 Sheet1    A     BCDEFGHIJKLMN   O 1 宿泊日                 人数 2 20100223               20 3 20110103               5 4 20111118               9 5 20120505               13 6 20121010               7 8 20120224               32 9 20121121               28 Sheet2    A      B    C   D    E   FGHIGKLMN    O 1 検索 2 宿泊日 20110101 ~ 20121111 3 人数     8    ~   30     人 4 5 宿泊日                                  人数 6 20111118                                   9 7 20120505                                  13 Sheet1、A列の宿泊日とO列の人数の範囲が一致するものを、 Sheet2の検索から、行ごと抽出(複数)し、Sheet2に反映する関数を教えて頂けないですか? いろいろ検索して探しましたが、複数抽出する方法がわかりませんでした。 よろしくお願いいたします。

  • 条件に合致するものだけを別シートに表示

    エクセル2003を使用しています。 Sheet1に日付とともに商品出荷データが入力されています。 Sheet2~Sheet13までの12ヶ月分のシートにsheet1で入力された日付を元に、抽出表示したいと思います。 sheet1 商品コード 商品名 出荷日 A001 ABC 2012/6/10 A089 AZZ 2012/6/19 B006 BAA (出荷されていない物は日付の入力無し) C006 C4587 2012/7/6 Sheet2以降のA1セルには、201206 のように年月を入力しておき、抽出条件とします。 また抽出表示項目は、Sheet1に入力されている全ての情報です。 (商品コードから出荷日まで) このような表示にさせたい場合の、式を教えて頂けないでしょうか?  どうぞ、よろしくお願いします。

  • 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の番号の抽出方法の式を教えて下さい。

専門家に質問してみよう