下記のようなAB2つのテーブルがあります。
 <Aテーブル>
  (1)1行目は数字の連番です。
  (2)2行目は1行目の数字の頻出数です。
 <Bテーブル>
  (1)1行目は数字の連番です。
  (2)2行目はLARGE関数でAテーブル(2)の頻出数を大きい順に並べた数値です。
  (3)3行目に(2)の頻出数に該当するAテーブル(1)の数字を参照して、自動的に設定したいのですが、その方法が分かりません。(頻出数が同じ場合は若い数字順に参照します)

具体的には以下
Aテーブル
 01 02 03 04 05 06 07 08 09 10
  2 4 1 0 3 4 2 1 2 3

Bテーブル
 01 02 03 04 05 06 07 08 09 10
  4 4 3 3 2 2 2 1 1 0
02 06 05 10 01 07 09 03 08 04

以上、Bテーブルの3行目の設定は人手による操作を無くしたいのですが、H(V)LOOKUP関数やIF文ではうまく処理できませんでした。

何方かお知恵を貸して頂けませんか?
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

1行目の数字の連番は、01,02,・・・となっていますが、


数字として扱えますか?(書式設定で、00等にしていますか?)それとも文字列ですか?

以下は数字として扱える場合です。

・Aテーブル(Sheet1)、Bテーブル(Sheet2)で作成しています。
・配列数式ですので、[Enter]のかわりに[Ctrl]+[Shift]+[Enter]を押してください。

A3セルに
=SMALL(IF(Sheet1!$A$2:$J$2=A2,Sheet1!$A$1:$J$1,""),COUNTIF($A$2:$J$2,A2)-COUNTIF(A2:$J$2,A2)+1)

前後に{}が付くと思います。
(前0付きませんので、書式設定で変更してください。)
後はコピーしてJ3セルまで貼り付けでどうでしょうか?

文字列の場合、#NUM!と表示されます。

数字でない場合は、補足してください。また、考えてみます。

この回答への補足

ご返事が遅くなり、済みません。

ご回答の内容を試してみました。
最初は配列数式が分からず、折角のコメントを無視して、思うような結果ではなかったのですが、漸く気が付いて
[Enter]のかわりに[Ctrl]+[Shift]+[Enter]を押しました。
ご指摘の様に前後に{}が付いて、結果はバッチリ!OK。
感動ものでした。!
あんなに苦労していたのが、こんな1行でできるとは思ってもいませんでした。

大変助かりました。どうもありがとうございました。

補足日時:2003/07/16 12:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


人気Q&Aランキング