基準に基づいて特定の列の行をコピーし、継続的に更新するにはどうすればよいですか?

基準に基づいて特定の列の行をコピーし、継続的に更新するにはどうすればよいですか?

シートが 2 つあるので、シート 1 とシート 2 と呼びます。

シート 1 には、本質的にはスコア集計を中心とする次のようなデータがあります。

名前 性別 スコア
ジャック 12 155
メアリー 67 女性 0
ジル 16 女性 61
サラ 44 女性 219
ピーター 5 0
ネイサン 32 0
グレッグ 25 44

次に、シート 2 に新しいテーブルを作成し、スコアが 0 より大きいすべての行と、名前とスコアの列のみを次のように収集します。

名前 スコア
ジャック 155
ジル 61
サラ 219
グレッグ 44

これを継続的に更新したいので、たとえば、メアリーがいくつかのポイントを獲得した場合、テーブルは次のようになります。

名前 スコア
ジャック 155
メアリー 21
ジル 61
サラ 219
グレッグ 44

また、新規参加者が来て、0 ポイント以上を持っている場合は、それも追加したいと思います。たとえば、Luke が参加した場合:

名前 スコア
ジャック 155
メアリー 21
ジル 61
サラ 219
グレッグ 44
ルーク 98

どこから始めたらよいのかよくわかりません。Google スプレッドシートで作業していて、INDEX-MATCH を実行しようとしましたが、一致がうまく機能していないようで、表示したい列のペアを選択できないようです。また、継続的に更新する方法もよくわかりません。VBA を使用しないソリューションを希望しており、可能であれば、セル内の数式だけに留めたいと思います。

答え1

Googleスプレッドシートのシート2

テーブルを作成したい場所に次の数式を入力します

=SORT(FILTER(FILTER(Sheet1!A:D,Sheet1!D:D>0),{1,0,0,1}),2,FALSE)

最初のフィルター ' FILTER(Sheet1!A:D,Sheet1!D:D>0)' は、スコアが 0 より大きいセル範囲とスコア列を選択します。

このフィルターを別のフィルターでラップすると、{1,0,0,1}最初の列 (名前) と 4 番目の列 (スコア) からのデータ ' ' のみが返されます。

これをラップして 2 番目の列を並べ替え ( 2)、降順で並べ替えます ( False)。

Excel 365でこれを行う場合は、Falseを置き換えます。-1

関連情報