IF条件内でVLOOKUPを実行する


0

テーブルの列Yが値Zよりも小さい(IF)場合、テーブルの値XをVLOOKUPする必要があります。

この式を書くと、テーブルの最初の値が返され、必要な値は返されません。
=IF(PI_UWF!S:S < Search!$L$19 ; VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE) ; "boh")

  • 値X = VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE)
  • 列Y = PI_UWF!S:S
  • 値Z = Search!$L$19

どうすればいいですか?


私が見る最初の問題は、S:S <?の場合です。すべてのS:Sを評価して、S:Sの値がより小さいかどうかを尋ねることはできません。IFはSの各セルを評価しません
。– ejbytes

1
作品を作成してテーブルに投稿し、探しているものを正確に示すことができたら、喜んでお手伝いします。今、あなたが何を求めているのか明確ではありません。
ejbytes

回答:


0

あなたは間違ったロジックに従い、それ以外の基準をチェックしてVLOOKUPも動作しません。

VLOOKUPINDEXとMATCH を使用する代わりに、より柔軟な数式を作成できます。

=INDEX(PI_UWF!Q:Q;MATCH(O18,IF(PI_UWF!S:S<Search!L19,PI_UWF!C:C,""),0))
これは配列数式であるため、挿入後、Ctrl + Shift + Enterキーを押します。

使い方:

  • IF(PI_UWF!S:S<Search!L19,PI_UWF!C:C,"") -S:SがSearch!L19に劣る場合のみ、C:Cから値を選択します
  • MATCH(O18,IF(...),0) -フィルタリングされたリストの値と一致します
  • =INDEX(PI_UWF!Q:Q;MATCH(...)) -Q:Qから適切な値を選択します

(サンプルデータがないため、ソリューションを確認できませんでした。小さな問題があるかもしれませんが、コンセプトは正しいです)。


0

使用する=IF(PI_UWF!S:S < Search!$L$19;;) ことは自由ではありません。列の合計と比較するか、単一の値と比較するかはわかりません。そして、非常に信頼できないでしょう。

目的に応じて、使用できる機能がたくさんあります。
比較したい場合Zには合計Yご使用することができますSUM()

これを使用すると、置き換えることができPI_UWF!S:SSUM(PI_UWF!S:S)あなたを与えることになります。

=IF(SUM(PI_UWF!S:S) < Search!$L$19 ; VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE) ; "boh")

すべてのセルと比較Zしたい可能性が高くなります。これには、次のようなものを使用できます。YCOUNTIF(range, criteria)

=COUNTIF(PI_UWF!S:S;">="&Search!$L$19)Y以上の値を持つセルの数をカウントしZます。
この値が0の場合、のすべてのセルYがより小さいことがわかりますZ。つまり:

=IF(COUNTIF(PI_UWF!S:S;">="&Search!$L$19)>0;"Not inferior";"Inferior")

またはあなたの場合

=IF(COUNTIF(PI_UWF!S:S;">="&Search!$L$19)>0;"boh";VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE))

幸運を!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.