Davidは、特定の列の最大値に関連付けられた日付を返す方法を尋ねました。 Davidのアプリケーションでは、日付とそれらの日付に関連付けられた重みを含む2つの列がありました。彼は最大体重を決定する方法を理解できましたが、その体重が発生した日付を引き出​​す方法は理解できませんでした。

この例では、日付が列Aにあり、重みが列Bの2行目から45行目にあると仮定します。以下は、列Bの最大重みを決定する方法です。

=MAX(B2:B45)

MAX関数の使用に限定されません。範囲内で指定された最大値を返すLARGE関数を使用することもできます。最大値が必要な場合は、次のように関数を使用します。

=LARGE(B1:B45,1)

ここまでは順調ですね。対応する日付をセルから日付の左側にプルするには、ルックアップ関数の1つを使用するだけです。次の例では、INDEX関数を使用しています。

=INDEX(A2:A45,MATCH(MAX(B2:B45),B2:B45,FALSE),1)

INDEX関数は、範囲A2:A45の行n、列1から値を取得します。

nの値は、MATCHを使用して、その範囲内の範囲B2:B45の最大値の位置番号を取得することによって決定されます。たとえば、最大の重みがリストの4番目の重み(行5の重み)である場合、MATCH式は4を返すため、INDEX関数は範囲A2:A45の行5、列1から日付を返します。

必要に応じて、列情報を指定するだけで、数式をさらに簡略化できます。このようにして、列Aと列Bに必要な数のエントリを含めることができます。

=INDEX(A:A,MATCH(MAX(B:B),B:B,FALSE),1)

これらの数式では、MAX関数の代わりにLARGE関数を簡単に使用できます。同じ重みが関連付けられている日付が2つある場合は、最初に一致した日付のみが返されます。さらに、数式が含まれているセルを日付形式でフォーマットする必要があります。

列が逆になっている場合、つまり重みが列Aにあり、日付が列Bにある場合は、次に示すように、INDEXの代わりにVLOOKUP関数を使用します。

=VLOOKUP(LARGE(A1:A45,1),A1:B45,2,FALSE)

この場合も、必要に応じて、LARGE関数の代わりにMAX関数をこの式で使用できます。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(1972)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。