Google Sheetsでのリーダーボードの作成

0
2022.01.11

https://docs.google.com/spreadsheets/d/1vE5DSC5bQMuHGMk3IRtLqFpTlr6AsfFvk0hMYZLts7o/edit?usp=sharing

以下のような表があるとします。

表1のタイトルは "Scoring"

トム マイク カール
G1 4 1 5
G2 5 2 7
合計 9 3 12

関数を使って、何の数字が一番大きいか(First place)、二番目に大きいか(Second place)、三番目に大きいか(Third place)を判断できることは知っていますが...。

=large(b4:d4, 1)

=ラージ(B4:D4, 2)

=large(B4:D4, 3)

とすると、それぞれ12 93が返ってきます。これらの数字を取得して、それに対応する名前(1行目から)を取得することは可能でしょうか?つまり、出力はCarl TomMikeの順になります。必要であれば、2つのステップを作ることができます(つまり、ステップ1は数字を取得し、ステップ2(別のセルで)は名前を見つけることになります)。

最終的な出力はこんな感じにしたいと思っています。

Tom マイク カール
G1 4 1 5 1位 カール
G2 5 2 7 2nd マイク
合計 9 3 12 3位 トム

申し上げておきたいのは、名前は外部に記載されており、上の表では=Info!B[number]を使って表示され、合計はG1とG2のスコアを足して計算されているということです。

回答
1
2022.01.12

この式をセルG2で試して、計算した数だけコピーしてください。

=index(B$1:D$1,1,match(F2,$B$5:$D$5,0))


論理

  • match- 範囲$B$5:$D$5の中で、F列の値を含む列番号を返す
  • index- 範囲B$1:D$1の中で、matchで返された列番号の中にある値(名前)を返す