3

ExcelでLARGE関数を使用しようとしていますが、同じ番号の結果が複数ある場合、同じ結果が2回以上返されます。私がやりたいのは、リストの次の項目に移動することです。次に例を示します。

=INDEX(Movies[Title],MATCH(LARGE(Movies[Rating If Genres],1),Movies[Rating If Genres],0))
=INDEX(Movies[Rating],MATCH(LARGE(Movies[Rating If Genres],1),Movies[Rating If Genres],0))

=INDEX(Movies[Title],MATCH(LARGE(Movies[Rating If Genres],2),Movies[Rating If Genres],0))
=INDEX(Movies[Rating],MATCH(LARGE(Movies[Rating If Genres],2),Movies[Rating If Genres],0))

=INDEX(Movies[Title],MATCH(LARGE(Movies[Rating If Genres],3),Movies[Rating If Genres],0))
=INDEX(Movies[Rating],MATCH(LARGE(Movies[Rating If Genres],3),Movies[Rating If Genres],0))

=INDEX(Movies[Title],MATCH(LARGE(Movies[Rating If Genres],4),Movies[Rating If Genres],0))
=INDEX(Movies[Rating],MATCH(LARGE(Movies[Rating If Genres],4),Movies[Rating If Genres],0))

=INDEX(Movies[Title],MATCH(LARGE(Movies[Rating If Genres],5),Movies[Rating If Genres],0))
=INDEX(Movies[Rating],MATCH(LARGE(Movies[Rating If Genres],5),Movies[Rating If Genres],0))

これにより、次のようになります。

 Title                     | Rating
 --------------------------|---------
 Alien                     | 8.5
 Blade                     | 7.0
>30 Days of Night          | 6.6
>30 Days of Night          | 6.6
 Blade: House of Chthon    | 6.5

これは同じ映画を2回(30 Days of Night)上映していますが、そのうちの1つは6.6の評価もあるため、BladeIIである必要があります。

つまり、指定したジャンルが映画のジャンルと一致する場合は、テーブルの列に評価を保存します(ジャンルの場合の評価)。その後、そのリストから最高のジャンルを選びます。

30 Days of Nightを2回表示するのではなく、LARGE関数のBlade IIの結果を表示するようにするにはどうすればよいですか?

4

2 に答える 2

2

「トップ5」の表で、最初の評価(この例では8.5)がB2にあると仮定して、A2でこの配列数式を試してください。

=INDEX(Movies[Title],SMALL(IF(Movies[Rating If Genres]=B2,ROW(Movies[Rating If Genres])-MIN(ROW(Movies[Rating If Genres]))+1),COUNTIF(B$2:B2,B2)))

Ctrl + Shift + Enterで確認し、下にコピーします

これにより、評価が繰り返されても正しいタイトルが取得されます

編集:またはおそらくこの非アレイバージョン......

=INDEX(Movies[Title],MATCH(1,INDEX((Movies[Rating If Genres]=B2)*(COUNTIF(A$1:A1,Movies[Title])=0),0),0))

于 2013-01-11T15:36:43.697 に答える
1

評価のヘルパー列を作成します。

評価が列Aにある場合は、ヘルパー列の最初のセルに数式を入力します(コピーダウン)

=IF(COUNTIF($A:$A;$A5)>1;$A5+ROW($A5)*0.000001;$A5)

行番号に応じて(つまり常に異なる)わずかな量を同等のランキングに追加しますが、これは次のランクに到達することはありません。列に適用するLARGEと、最初は等しいエントリがランク付けされます。

たとえば、4.8の3倍は4.800002、4.80005、4.802になります。

さらに簡単なアプローチ:行番号を十分に大きい数で割った値をすべてのエントリに追加します。精度が0.1の場合、すべてに少量を追加すると、それらが一意になります。最終結果を丸めると、それらは再び等しくなります。

于 2013-01-11T15:26:46.957 に答える