2017-08-16 10 views
1

私は、列D(20から150エントリ)と各人物が割り当てられているテーブル番号(列 "E")に名前のリストを持つトーナメントスプレッドシートを持っています。 「I」欄にExcel - 高度なソート機能

See here...

は、私は、各テーブルで利用可能な座席数(この情報は、別のイベントからの変化)のリストを作成し、ばかげた式を有します。

カラム「G」は私の問題です。私は列 "E"の内容を実行したいと思うし、列 "D"の内容を与えるために、列 "I"の内容と一致する列 "E"の値がいつでもある。ここで

See here...

、それが現在のセルG3に立っているように私の式である:

{=IFERROR(INDEX(D$3:D$150,SMALL(IF(E$3:E$150=I3,ROW(E$3:E$150)-ROW(E$3)+1),ROWS(E$3:E3))),"")} 

式は限りコラム「E」の値として列「E」のすべての値のために完璧に動作しますこの式はGoogleスプレッドシートでうまく機能しますが、Excelでは範囲を別々に処理するようです。私は、標準式と配列式を両方とも試してみました。

アドバイスをいただければ幸いです。

もう1つ注意してください、私は必要に応じてVBAを使用できますが、私は機能に固執したいと思います。この例の

答えて

0

enter image description here

私は、次の式を使用:あなたは、あなたのニーズに合わせて範囲を調整する必要があります

=INDEX($C$14:$C$25,AGGREGATE(15,6,(ROW($D$14:$D$25)-ROW($D$14)+1)/($D$14:$D$25=H16),COUNTIF($H$16:H16,H16)),1) 

を。

0

私のテストでは、問題はSMALL機能の第2引数としてROWS(E$3:E3)であるように見えます。基本的に、12行目の最初の2行になったら、D列の2番目の小さな値の10番目の小さな関数を求めています.8人のプレイヤーしか期待していないようです。

ROWS(E$3:E3)COUNTIF(I$3:I3, I3)に変更してみてください。

これは、すでにI列に入っている1または2の数を数えます。したがって、2になったら、リセットして最初の最小値を求める必要があります。

0

@Forward Ed。あなたのご意見ありがとうございます。それは私が必要としていた道を私に手伝ってくれました。

{= IFERROR(INDEX(D $ 3::D $ 150、SMALL(IF(E $ 3:E $、150 = I3、ROW(E $ 3:E $ 150ここ

は私のために働くことになった式であります)-MIN(ROW(E $ 3:E $ 150))+1)、J3))、 "")

関連する問題