2016-10-15 1 views
1

私はExcelのTABの列Aの値のリストを持っています。その横の列Bには単語のリストがあります。別のTABで、私はBからAの最小値、次に2番目の小さな値、3番目などの単語を取得しようとしています。繰り返し番号を認識するVLOOKUPのようなものはありますか?

例:列Aは(2,3,3,6、カラム上

  • X1 Iを添加:SMALL('Table'!$A:$A,1)
  • で8)とB(車、犬、猫、家、ボート)

    私はまずIが最小値を取得列を作成しましたカラムx2私は:を追加しました3210

  • など...その後

と VLOOKUPが私の仕事:

  • Y1コラムで私がコメントを追加しました:VLOOKUP(X1,'Table'!$A:$B,2,FALSE)
  • Y2コラムで私がコメントを追加しました:VLOOKUP(X2,'Table'!$A:$B,2,FALSE)

これまでのところとても良いです。私の問題は、私の価値観が繰り返されるときです。 *すなわち:上記の例で 機能が列Aに値3を見つけた時はいつでも、それだけでVLOOKUPが見つかった最初の値を表示するので、私は言葉回ではなく2のを取得します。

私はオフセットを追加しようとしました:=OFFSET(SMALL('Table'!$A:$A,1),1,0)しかし、それが他のTABSからフェッチするかどうかはわかりません。

これについてのヘルプや回避策はありますか?事前に多くの感謝。

答えて

1

私はそれはまた、あなたができるetc.:-

前に二回
=INDEX(Table!B:B,MATCH(A2,Table!A:A,0)+COUNTIF(A$1:A1,A2)) 

を発生している場合はインデックス/マッチの代わりに、VLOOKUPを使用して、同じ値が前に一度発生した場合、一致位置に1を加算し、2示唆最小を取得するには、このようなものを使用し、二等の小さいのではなく、それをハードコーディング: -

=SMALL(Table!$A:$A,ROW(1:1)) 

enter image description here

OK私はトンをつもりトリック同じ値の行を区切るために使用すると、値を一意にするために各行に少量を追加することになります。ここに私の式は以下のとおりです。 -

=LARGE(IF(A$2:A$9="Restaurants",C$2:C$9),ROW(1:1)) 

最大値を取得するには、これが一致する都市を取得するには、標準式

=INDEX(D$2:D$9,MATCH(LARGE(IF(A$2:A$9="Restaurants",C$2:C$9+ROW(C$2:C$9)/10^7),ROW(1:1)),C$2:C$9+ROW(C$2:C$9)/10^7,0)) 

です。等しい値が隣接する行にない場合でも、これは機能します。

実際のデータの行数はわかりませんが、100を超える場合は.01より小さい値を使用する必要があります。これらは、配列数式であり、がちょうどSMALLに大きな変化、最も小さいもののため

を入力しCtrlキーShiftキーを入力する必要があることを

Pleaeノート。

enter image description here

あなたが「ランク付けされていない」などの任意の数値以外の値を除外したい場合は、

=INDEX(D$2:D$9,MATCH(LARGE(IF((A$2:A$9="Restaurants")*ISNUMBER(C$2:C$9),C$2:C$9+ROW(C$2:C$9)/10^7),ROW(1:1)),C$2:C$9+ROW(C$2:C$9)/10^7,0)) 

私はそれがDを使用して変更することはお勧めしません必要があります:Dを、Cを:Cをそれは遅くなるかもしれないので、それは働くでしょう。

+0

このトムに感謝します。 – pedroteixeira07

+0

私はまだ問題を抱えていますが、適切な解決策を見つけることができないか、あるいは私はおそらく答えを知るのに十分な知識がありません。 – pedroteixeira07

+0

OK私は私の答えに追加します –

関連する問題