
IF 関数と VLOOKUP 関数を使用して、特定の行の内容に基づいて数式をトリガーしようとしています。
最初の行には支払額が含まれています。2 番目の行には、元の金額の 5 つのうちの 1 つ (115、95、65、45、35) が含まれています。
セルに元の金額のいずれかが含まれている場合は、正しい数式をトリガーして、「元の金額」(数値形式) または「8.50」の 2 つの回答のいずれかを返す必要があります。
「Due」はゼロか、「Org$」以上の値になります。そうでない場合は、エラー メッセージが返されます。
例えば、
Due Org$ Answer I need formula return
0.00 45 45
65.00 65 8.50
115 35 8.50
0 115 115
Org$ がこれら 5 つの値のいずれかである場合、その org$ がゼロに等しいかどうかを判断する数式がトリガーされ、元の金額が生成されます。ゼロでない場合は、「8.50」が生成されます。org$ の数字が 5 つのいずれでもない場合は、「ERROR」が表示されます。または、「Due」の値が Org$ より小さい場合は、「ERROR」という結果が表示されます。
IF 文字列を使用してみました(=IF(B2=115,$J$4,IF(B2=95,$J$5,IF(B2=65,$J$6,IF(B2=45,$J$7,IF(B2=35,$J$8, "ERROR")))))
。$J$4 は表内で次のようになります。=IF(B2<=A2, 8.5,115)
これを使用すると、最初のものは正しく出力されますが、それ以下のすべてのOrg$は、「Due」の内容に関係なくOrg$の回答を返します。
何か提案はありますか? これに 2 日間取り組んでいます (vlookup と if 関数を組み合わせて使用することも試しました)。
答え1
以下を使用できます。
=IF(ISNUMBER(MATCH(B2,{115,95,65,45,35},0)),IF(B2<=A2,8.5,B2),"Error")
Match は org$ の値を 5 つの元の金額 (115、95、65、45、35) と比較します。
一致する場合は数値を返します。If は B2<=A2 をテストします。True
は 8.5 を意味し
、False は B2 の元の金額 ((115、95、65、45、35) のいずれか) を意味します。
一致しない場合は、数式は「エラー」を返します。
数式を列の下にドラッグできます。