4 人の特別な顧客に対しては、特定の価格を設定しています。請求書の検証を容易にするために、人為的エラーを防止しようとしています。特定の会社が列 1 に配置されている場合は、セル 5 に正しい価格を反映する必要があります。価格は、リクエストの日数 (=>3、=2、=<1) によって異なります。つまり、3 つの価格、4 つの会社、そして頭痛の種です...
例1 これ以上引数を追加できませんでした:
=IF(X30="skanska","110",IF(X30="conway","95",IF(X30="cappagh","90",IF(X30="","80","100"))))
例2 再び引数が多すぎます:
=IF(AC18>=3,IF(X18="skanska","110","70 "),IF(X18="conway","90"," 60"))
ちょっと迷ってます…
今、私はそれを見て、声明vlookup
と組み合わせようとしています。if
例3: 2つを組み合わせる際に問題が発生します:
=VLOOKUP(A31,vtable_area,4,0)
答え1
ここでの VLOOKUP は正しい方法です。次の方法をお勧めします。特別な顧客用の列と、各可能な日数 (おそらく 1 から始まる) 用の列を含むテーブル (別のシートに) を作成し、適切な価格を設定します。
その場合、VLOOKUP 数式は次のようになります。
=VLOOKUP(Customer,VTable,Days+1,FALSE)
ここで、「顧客」は、顧客名が入ったデータの列です (A または任意の場所)。したがって、一致する顧客名を含む行が検索され、日数に一致する列から値が返されます。+1 は、顧客名が入っている最初の列を避けるためのオフセットです。つまり、1 日の値は 2 番目の列にあり、2 日の値は 3 番目の列にあります。したがって、次のようになります。
=VLOOKUP(X31,Lookup_table_area,AC31+1,FALSE)
理想的には、これをエラーキャッチ条件でラップして、「標準」顧客の値を返します。例:
=IFERROR(VLOOKUP(X31,Lookup_table_area,AC31+1,FALSE),999)