• ベストアンサー

Excel関数である条件に満たしたものを抽出

Excel関数である条件に満たしたものを別シートに抽出したいのですが たとえばsheet1に A   B    C ID  名前   条件フラグ 101  太郎   1 102  花子   3 103  一郎   2 104  二郎   3 というデータがあってここから 条件フラグが「3」のものだけをsheet2に抽出したいのですが オートフィルタではなく関数で処理をしたいと思います。お分かりの方、ご教授ください。

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

  • ベストアンサー
  • EL-SUR
  • ベストアンサー率76% (83/108)
回答No.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行にしています。もっと多い場合は範囲を修正してください。 ただし範囲が広すぎると配列数式は重くなります( 処理が遅くなる )。 データ数が多いなら作業列を使う方法にしてください。

hikson
質問者

お礼

完璧です!! 分かり易い解説で大変参考になりました。どうもありがとうございます。

関連するQ&A