- ベストアンサー
Excel関数である条件に満たしたものを抽出
Excel関数である条件に満たしたものを別シートに抽出したいのですが たとえばsheet1に A B C ID 名前 条件フラグ 101 太郎 1 102 花子 3 103 一郎 2 104 二郎 3 というデータがあってここから 条件フラグが「3」のものだけをsheet2に抽出したいのですが オートフィルタではなく関数で処理をしたいと思います。お分かりの方、ご教授ください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
■作業列を使う方法 仮に D列を作業列にします。 Sheet1のD2: =IF(C2=3,ROW(),"") 下にフィルコピー。最終入力予定の行まで。 Sheet2のA2: =IF(COUNT(Sheet1!$D:$D)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$D:$D,ROW(A1)))) ROW(A1)の A1は変更しないこと。 右のB2にコピー 必要なだけ下にフィルコピー ■作業列を使わない方法-配列数式 Sheet2のA2: =IF(COUNTIF(Sheet1!$C:$C,3)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$C$1:$C$100=3,ROW($C$1:$C$100),""),ROW(A1)))) 入力後、F2キーを押して編集モードにしてから Ctrl+Shiftキーを押しながらEnterキーを押して配列数式にします。( 数式が{ }で囲まれます ) 確定後、右に下にコピー 範囲を最大100行にしています。もっと多い場合は範囲を修正してください。 ただし範囲が広すぎると配列数式は重くなります( 処理が遅くなる )。 データ数が多いなら作業列を使う方法にしてください。
お礼
完璧です!! 分かり易い解説で大変参考になりました。どうもありがとうございます。