- ベストアンサー
重複データーの呼び出し エクセル関数
いつもお世話になっています。 A B C 1 NO.1 中村 りんご 2 NO.2 田中 みかん 3 NO.3 吉田 いちご 4 NO.4 大野 りんご 5 NO.6 清水 りんご ・ ・ ・ ・ E1に“りんご”と入力すれば、F1に“NO.1” F2に“NO.4” F3に“NO.6”に表示させるには、どうすればいいか教えてください。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
関数でも実現できますが、少し難しいですよ。(過去の質問にもたくさんの類似例があります) データが1行目~30行目まであるとして、F1の式は以下になります。 下方向にコピーしてください。 =INDEX($A$1:$A$30,LARGE(INDEX(($C$1:$C$30=$E$1)*ROW($C$1:$C$30),),COUNTIF(C:C,$E$1)-ROW(A1)+1)) ただしこの式では「りんご」の個数以上の行で#NUM!エラーとなります。エラーを表示したくないなら以下のように条件判定を追加します =IF(COUNTIF(C:C,$E$1)>=ROW(A1),INDEX($A$1:$A$30,LARGE(INDEX(($C$1:$C$30=$E$1)*ROW($C$1:$C$30),),COUNTIF(C:C,$E$1)-ROW(A1)+1)),"") 上記関数式の欠点はシートが重くなることです。データが何千行もある場合は使い物にならないでしょう。そんなときは「データが変更されたときリアルタイムで表示が更新できない」という制約はありますが「データ」→「フィルタオプション」で抽出するのが良いと思います。 以下にサンプルのURLをひとつ掲載しますが「エクセル フィルタオプション」で検索すればたくさんの事例があります http://www11.plala.or.jp/koma_Excel/contents6/mame6042/mame604201.html
その他の回答 (4)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 F1に=IF(COUNTIF(C:C,$E$1)>ROW(A1)-1,INDEX(A:A,SMALL(IF($C$1:$C$100=$E$1,ROW($A$1:$A$100),99999),ROW(A1))),"")を設定、下方向に必要分コピーして下さい。 尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。
- kanitako
- ベストアンサー率0% (0/7)
僕ならこうします。 A列の左に列を挿入して、まず下のようにします A B C D 1 NO.1 中村 りんご 2 NO.2 田中 みかん 3 NO.3 吉田 いちご 4 NO.4 大野 りんご 5 NO.6 清水 りんご 次にA列に=D1&COUNTIF($D$1:D1,D1) として、下までドラッグすると次の様になります。 A B C D E F G 1 りんご1 NO.1 中村 りんご りんご 1 2 みかん1 NO.2 田中 みかん 2 3 いちご1 NO.3 吉田 いちご 3 4 りんご2 NO.4 大野 りんご 4 5 りんご3 NO.6 清水 りんご ここで、F列にりんごと代入し G列に1 2 3 4 …と入れておくと H列に=VLOOKUP($F$1&G1,$A$1:$D$100,2,FALSE) として下に引っ張れば、ご希望の形で出てきます。 $A$1:$D$100の100は100列までデータがあった時の場合なので、 もっと増やしたければ、その数字を増やせばできます。
F1: {=INDEX(A$1:A$100,SMALL(IF(C$1:C$100=E$1,ROW(A$1:A$100),""),ROW(A1)))} ← 配列数式 お好みでセル F1 を[条件付き書式]で次のように設定 数式が =ISERROR(F1) フォント色 白 セル F1 を下方にズズーッとドラッグ&ペースト
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
お礼
たいへんありがとうございます。 上記の方法で、処理できました。 お返事が遅くなり大変失礼しました。