![2つの異なる列で「より大きい」または「より小さい」の最初の出現を検索します。](https://rvso.com/image/1592164/2%E3%81%A4%E3%81%AE%E7%95%B0%E3%81%AA%E3%82%8B%E5%88%97%E3%81%A7%E3%80%8C%E3%82%88%E3%82%8A%E5%A4%A7%E3%81%8D%E3%81%84%E3%80%8D%E3%81%BE%E3%81%9F%E3%81%AF%E3%80%8C%E3%82%88%E3%82%8A%E5%B0%8F%E3%81%95%E3%81%84%E3%80%8D%E3%81%AE%E6%9C%80%E5%88%9D%E3%81%AE%E5%87%BA%E7%8F%BE%E3%82%92%E6%A4%9C%E7%B4%A2%E3%81%97%E3%81%BE%E3%81%99%E3%80%82.png)
答え1
これが機能するかどうかを確認してください。
この例では、サンプル データはセル A3:C15 にあり、ソリューション E3 と G3 および H3 には比較する数値が保持されます。
次に、E3 に次の数式を入力し、数式バー内でCTRL+ SHIFT+を押してENTER配列数式を作成します。数式は自動的に中括弧で囲まれ、配列数式であることを示します。
=IF(MIN(IF(A3:A15-$G$3>=0,ROW(A3:A15)-ROW($B$2),9^99))<=MIN(IF(C3:C15-$H$3<=0,ROW(C3:C15)-ROW($B$2),9^99)),INDEX(A3:A15,MIN(IF(A3:A15-$G$3>=0,ROW(A3:A15)-ROW($B$2),9^99))),INDEX(C3:C15,MIN(IF(C3:C15-$H$3<=0,ROW(C3:C15)-ROW($B$2),9^99))))
上記のサンプルでこれが機能するには、テーブルの上に少なくとも 1 行の空きが必要です。この場合、データは行 3 から始まるため、行 2 が使用可能です。ただし、データが行 1 自体から始まる場合、-ROW($B$2)
数式のこの部分は必要ありません。
基本的に、列 A 、 C と G3 、 H3 をそれぞれ比較し、条件が満たされた場合は行番号を返し、そうでない場合は配列内の大きな数値を返します。2 つの MIN を比較し、INDEX を使用して、小さい方から A または C を適切に取得します。
大量のデータがある場合、配列数式は処理のために遅くなる可能性があることに注意してください。
地域設定でリスト区切り文字としてカンマ (,) ではなくセミコロン (;) が指定されている場合は、数式テキスト内のカンマをセミコロンに置き換える必要があります。