配列数式を使用して、行データの特定のサブセットの最大値を決定します。
=MAX(($A2:$A100="somestring")*($C2:$C100))
これは正常に機能し、A="somestring"であるCの最大値を取得します。
ここで、この「最大」行に関連付けられている文字列である他の列値を返します。直感的には、文字列値が関係しているため、ブール論理乗算戦略を捨てる必要があると思います。これを行うための最良/最もクリーンな方法は何ですか?
配列数式を使用して、行データの特定のサブセットの最大値を決定します。
=MAX(($A2:$A100="somestring")*($C2:$C100))
これは正常に機能し、A="somestring"であるCの最大値を取得します。
ここで、この「最大」行に関連付けられている文字列である他の列値を返します。直感的には、文字列値が関係しているため、ブール論理乗算戦略を捨てる必要があると思います。これを行うための最良/最もクリーンな方法は何ですか?
これを試して:
=INDEX(B1:B100,MATCH(MAX((A1:A100="somestring")*(C1:C100)),(A1:A100="somestring")*(C1:C100),0))
この例では、値が必要な列は B に設定されています。
列 D の文字列に関心があると仮定すると、これは機能します。
=INDEX(($D$1:$D$100),MAX(($A2:$A100="somestring")*(ROW($C2:$C100))))
Row() でインデックスを作成しているため、Index 列は 1 から開始する必要があることに注意してください (例: D1:D100)。