ポールのリストがあり、その中には複数のテスト結果を持つものもあります。各ポールの最新のテスト結果を見つけて、その結果を返したいと思います。ご存知のとおり、VLOOKUP
最初のものだけが見つかります。毎回データを並べ替えたり、再並べ替えしたりするのは避けたいです。
つまり、3 つのキー値: 列 a = テストの日付、列 b = 投票番号、列 fa = テスト結果。
私のポールのリストは 5,000 本以上あり、増え続けています。
ありがとう!
答え1
簡単にするために、要約テーブルは から始まる同じシート内にあると仮定しますE1
。実際のデータ テーブルへの次の参照をすべて更新する必要があります。私は次のように設定しました。
最初の列はアンケートを表します。この列にアンケートの名前または番号を入力します。これはデータ テーブルにリストされている名前または番号と完全に一致している必要があります。完全に一致していない場合は機能しません。
2 番目の列は最新の日付を表します。次の配列数式を使用し、を押す間は必ずCtrlと を押したままにしてください。これらのキーを押したままにすると、配列数式が作成されます。ShiftEnter
=MAX(IF(B:B = E2, A:A, 0))
Ctrl+ Shift+を押すとEnter、数式は次のように中括弧で囲まれます。
{=MAX(IF(B:B = F2, A:A, 0))}
中括弧は、数式が配列数式であることを示します。中括弧がない場合は、セルを再入力して、キー シーケンスをもう一度押します。中括弧は自動的に表示されるため、実際に入力する必要はないことに注意してください。最後に、3 列目は最新の結果を表します。これも配列数式なので、 を押すときは とCtrlを押したままにしてください。ShiftEnter
=INDEX(C:C, MATCH(F2 & " " & E2, A:A & " " & B:B, 0))
Excel は日付を数値として扱うため、MAX
数式を使用して最新の日付を見つけることができます。これを特定の投票に限定するには、配列数式を使用して Excel に日付をループ処理し、必要な投票でない場合は日付の代わりに数値 0 を使用するように指示します。これにより、一致しない投票が効果的に除外されます。最新の日付を取得したら、結果を取得するだけです。2 つの列を参照しているため、何らかの方法でそれらを結合する必要があります。これは、日付と投票をスペースで区切って連結することで実現します。数式はMATCH
完全一致を検索し、見つかった最初の一致の位置を返します。この場合は、行番号に対応します。INDEX
次に、数式を使用して結果を取得します。
一致する日付と投票が複数ある場合は、最初の結果が返されることに注意してください。