- ベストアンサー
エクセル関数で、検索値が複数ある場合、一番間近な値を抽出したいのですが?
何日もネット検索しましたが、理解できる情報が見つからなかったので、どなたか教えてください! A列 B列 C列 (1) 31212 1 (2) 31212 2 1 (3) 21212 1 (4) 12212 3 (5) 31212 1 2 上記のような数列が数百行あり、これからも随時追加されていきます。 例えば、A5の31212で検索したとき、一番間近なA2の値、B2をC5に抽出したいのですが、どうしてよいか解りません。 よろしくお願いします!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こういうこと? 例示のB列には事前に値が入力されているとします。 またB列には以下のように値が無いものとします。 (1) 31212 1 (2) 31212 2 (3) 21212 1 (4) 12212 3 (5) 31212 1 なお、[]はセル選択された状態と思ってください。 #1のとおりに、 1)例示のデータの()付き数字の部分を列Aとし(列の挿入)、今あるデータを列B以降にずらす。 2)「データの並べ替え」で、列B(昇順)列A(昇順)を指定 --その結果-----ここから---- (4) 12212 3 (2) 21212 1 (1) 31212 1 (3) 31212 2 (5) 31212 1 --その結果-----ここまで---- 3)列B(31212があるところ)にオートフィルタ付けて欲しい値(今回は31212)を選択。 --その結果-----ここから---- (1) 31212 1 (2) 31212 2 (5) 31212 1 --その結果-----ここまで---- 4)検索結果の列Cの2行目以降、基準とする行「より前」の同じ値部分(今回は 1 と 2 )を最後までを選択してコピー。 (基準とする行を含めないこと) --その結果-----ここから---- (1) 31212 [1] (2) 31212 [2] (5) 31212 1 --その結果-----ここまで---- 5)ひとつ右下(例示の(2)で列Cに1があるセル)を選んで、ペースト。 --その結果-----ここから---- (1) 31212 1 (2) 31212 2 [1] (5) 31212 1 [2] --その結果-----ここまで---- 6)オートフィルタを解除(またはすべて表示)。 --その結果-----ここから---- (4) 12212 3 (3) 21212 1 (1) 31212 2 (2) 31212 2 1 (5) 31212 1 2 --その結果-----ここまで---- 7)「データの並べ替え」で、列A(昇順)を指定 --その結果-----ここから---- (1) 31212 1 (2) 31212 2 1 (3) 21212 1 (4) 12212 3 (5) 31212 1 3 --その結果-----ここまで---- が簡単じゃないでしょうかね。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
> A列 B列 C列 > (1) 31212 1 (1)にある31212の列Cに番号を振らないルールは何? 1)列Aを「連番」用に確保し、現在の列を右へひとつシフト。 2)列Aに1からの連番振っておく。追加の都度、手当てする。 3)必要にあわせ、列Bの昇順、列Aの降順でソート 4)オートフィルタで列Bの「欲しい値」に番号を付与。 5)列Aの昇順でソート ではだめですか?
補足
アドバイス、ありがとうございます! 説明が下手ですみません。 C列は番号ではなくて、検索の結果を返したいのです。 (2)の31212に対して、一つ前の(1)の31212の対数であるB1の値をC2に返してあるのです。(同様に、(5)の31212に対して、一つ前の(2)の31212の対数B2をC5に返してあります) これを、連続してすべてを表示するようにしたいのですが? よろしくお願いします。!!
お礼
何度もご親切にアドバイスありがとうございました! いろいろなやり方があるものだと関心いたしました。 参考にさせていただきます。 心より感謝申し上げます!