- ベストアンサー
【エクセル】表から条件に合ったデータを別シートに順番に抽出したい
エクセルの表である条件にあてはまる行を 別シートに順番に抽出されるような関数を教えてください。 シート1のB列にあるデータが"渋谷区"のとき シート2のE74からE80くらいまでに シート1のC列のデータを上から順に抽出されるようにしたいです。 【シート1】 A B C 1 東京都 渋谷区 PC 2東京都 港区 PC 3東京都 新宿区 マウス 4東京都 渋谷区 ペン 5東京都 渋谷区 モニタ ・ ・ ・ 10 【シート2】 E 74 PC 75 ペン 76 モニタ ・ ・ ・ 80 【補足】 元の表(シート1)を編集することがあるので 自動的に反映されるよう、関数で作成できたらと思います。 シート2の構成上、抽出後のソートや、フィルタオプションは避けたいです。 わかりづらい文章で申し訳ございませんが どなたかいいアドバイスがありましたら教えてください。 お礼は明日になってしまいますが、必ずご返答いたします。 よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>E74に関数を入力し、その後関数をE80までドラッグすればよいのでしょうか? いいえ。 1. =INDEX(シート1!C1:C11,SMALL(IF(シート1!B1:B10="渋谷区",ROW(A1:A10),11),ROW(A1:A10)))&"" の数式を掲示板上でコピーします(シート名は合わせてください) 2. E74:E80セル範囲を選択します 3. 数式バーで[Ctrl]+[V]貼り付け 4. [Ctrl]+[Shift] +[Enter] でセルへの入力を確定させます >その際、絶対参照や相対参照は必要でしょうか? セルのコピーはしませんので不要です。 参考まで
その他の回答 (5)
[回答番号:No.1この回答へのお礼]に対するコメント、 1.例えば Sheet2 のセル H73 に 渋谷区 を入力して、次式を入力し たセル H74 を下方にズズーッとドラッグ&ペースト =IF(Sheet1!B1=H$73,ROW(A1),"") 2.同シートのセル E74 に次式を入力して、此れを下方にズズーッと ドラッグ&ペースト =IF(ISERROR(SMALL(H$74:H$99,ROW(A1))),"",INDEX(Sheet1!C:C,SMALL(H$74:H$99,ROW(A1))))
お礼
わざわざすみません。 やっと、理解できました。 本当にありがとうございました。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
配列数式を提示しても意味がわからないと、また、質問することになるんだろうなあ と思いつつ、軽量と思われる配列数式 シート1のC11セルは未入力とする シート2のE74:E80セルを選ぶ =INDEX(シート1!C1:C11,SMALL(IF(シート1!B1:B10="渋谷区",ROW(A1:A10),11),ROW(A1:A10)))&"" と入力後、[Ctrl]+[Shift] +[Enter] で確定({}で囲まれる) 参考まで
お礼
ご回答ありがとうございます。 画面まで貼り付けていただき、わかりやすくて助かります。 ご指摘のとおり、配列数式については知識がなく ちょっとわからないので 再度質問させてください。 >シート2のE74:E80セルを選ぶ とありますが E74に関数を入力し、その後関数をE80までドラッグすればよいのでしょうか? その際、絶対参照や相対参照は必要でしょうか? よろしくお願いいたします。
- masa_019
- ベストアンサー率61% (121/197)
No.2です。 書き忘れましたけど、配列数式なので、 式の確定時はCtrl +Shift + Enter をお忘れなく。
- masa_019
- ベストアンサー率61% (121/197)
こんにちは。 もう少し短い数式でもできるかもしれませんが、 一例ってことで・・・。 Sheet2のE74に {=IF(ISERROR(INDEX(Sheet1!$A$1:$C$5,SMALL(IF((Sheet1!$B$1:$B$5)="渋谷区",ROW(Sheet1!$C$1:$C$5),""),ROW()-73),3)),"",INDEX(Sheet1!$A$1:$C$5,SMALL(IF((Sheet1!$B$1:$B$5)="渋谷区",ROW(Sheet1!$C$1:$C$5),""),ROW()-73),3))} として、下にズリズリ~っとコピーして下さい。 Sheet1のリスト範囲はA1:C5としています。実情に合わせて変更して下さい。 数式中の ROW()-73 は74行目から始まる場合です。
お礼
ご回答ありがとうございます! こんなに難しそうな関数をわざわざ作成していただき 感謝してます。 ちょっと内容を理解するのに時間がかかりそうなので 取り急ぎ、お礼をさせていただきます。
「シート2」の何処かの空き列を1列だけ(作業列として)使ってもOKですか?
お礼
ご回答ありがとうございます。 作業列を作成してもOKです! アドバイス、よろしくお願いいたします。
お礼
ご連絡おそくなりまして 申し訳ございません! なんとかできました!ありがとうございました。 助かりました!