- ベストアンサー
エクセル2010 検索と抽出
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! お示しの配置の場合はC83セルに =IFERROR(INDEX(F$83:F$162,SMALL(IF($E$83:$E$162=$B$83,ROW(A$1:A$80)),ROW(A1))),"") (配列数式です) という数式を入れ、隣りのD83セルまでコピー! そのまま下へコピーしてみてください。 (1)フィル&コピーしますので、絶対参照、複合参照($マークの位置)に気を付けてください。 (2)INDEX関数の「配列」(83~162行目)までの何行目を表示するか? という数式ですので、83行目がINDEX関数の配列の「1行目」となります。 すなわち仮に83行目に「機器A」がある場合は、数式を入れた1行目にINDEX関数の配列の1行目を表示しなければなりません。 配列数式の >IF($E$83:$E$162=$B$83) (←E83~E162の中でB83と同値の場合=「TRUE」の場合) は、INDEX関数の配列の何行目を返すか?という数式になり >ROW(E83:E162)) の部分を >ROW(A$1:A$80) のように1行目から指定してやる必要があります。(配列の行数とA1からの行数を合わせます) ※ 無理にA列でなくても別列でも大丈夫です。 判り難い場合は =IFERROR(INDEX(F$83:F$162,SMALL(IF($E$83:$E$162=$B$83,ROW(A$83:A$162)-82),ROW(A1))),"") という数式にしても同じ結果が返ります。 ※ この数式の場合は >ROW(A$1:A$80) の部分を >ROW(A$83:A$162)-82 としています。m(_ _)m
その他の回答 (2)
別解です。 セル C83 に次の[条件付き書式]を設定 条件1 数式が =NOT(ISERROR(C83)) パターン色 黄 条件2 数式が =ISERROR(C83) フォント色 白 セル C83 に次の配列数式を入力 {=INDEX(F:F,SMALL(IF($E$83:$E$162=$B$83,ROW(E$83:E$162),""),ROW(E1)))} セル C83 を右隣にドラッグ&ペースト 範囲 C83:D83 を下方にズズーッとドラッグ&ペースト
- hallo-2007
- ベストアンサー率41% (888/2115)
=IFERROR(INDEX(F83:F162,SMALL(IF(E83:E162=B83,ROW(E83:E162)),ROW(A1))),"") は =IFERROR(INDEX(F:F,SMALL(IF(E$83:E$162=B$83,ROW($E83:$E162)),ROW(A1))),"") ではないでしょうか。
お礼
回答ありがとうございます。 なるほど、最後の配列の部分が間違っていたのですね、助かりましたありがとうございます。