如何在Excel中编写基于3个参数进行计算的IF函数?


0

我有一个包含三种类型客户的表:GOV,NProfit和COM,包含在B列中。每个客户都收到不同的计费率,分别为1.50,2和3,需要应用于G栏中的单位。

我需要在H列中编写一个函数来读取B列中的客户类型,并将客户类型的适当费率应用于G列中的单位,在H列中给出总帐单。

Answers:


4

虽然初看起来很诱人,但嵌套的IF()函数并不是处理这种情况的最佳方法。

为了便于维护,我强烈建议建立一个包含三种客户类型及其各自计费率的单独表格。一个包含两列的简单表格就可以了。 A列是客户类型,B列是计费率。

然后,您可以使用VLookup获取客户类型的计费率。

这种方法的好处是,如果计费率发生变化,您将不必像上面建议的那样使用嵌套的IF语句更改所有单元格。您只需在查找表中更改结算费率。

将查找表放入一个名为“Lookup”的新工作表中。第1行是标签。 A1是客户类型,B1是费率。

在原始数据表中,您可以使用这样的Vlookup

=VLOOKUP(A1,Lookup!$A$1:$B$4,2,FALSE)

此查找假定客户类型位于当前工作表的单元格A1中。请根据您的情况进行调整。此外,您可以将Vlookup嵌套到另一个计算中。例如,如果您想进行涉及计费率的计算,您可以执行类似的操作

=B1*VLOOKUP(A1,Lookup!$A$1:$B$4,2,FALSE)

其中当前工作表的A1是客户类型,当前工作表的B1是您希望与相应客户类型的计费率相乘的值。

如果您的数据可能并不总是具有客户类型,则可能需要对没有客户类型的数据使用一些错误捕获。通常,公式将返回错误消息。如果将公式包装在IFError()语句中,则可以标记这些,如

=IFERROR(B1*VLOOKUP(A1,Lookup!$A$1:$B$4,2,FALSE),"Please check data!")

尽管如此,我只有一列用于所有这些不同的参数。这是否意味着我需要插入多个VLOOKUP功能?
Chad Pranke

不确定我理解。你能解释一下“一栏”吗?
teylyn

1

你指的是这样的东西吗?

= IF(B1 = 1,“customer1”,IF(B1 = 2,“customer2”,IF(B1 = 3,“customer3”,“无效选项”)))

将1,2,3替换为您正在“测试”的实际值,将“customer1”,“customer2”,“customer3”替换为您希望输出的内容

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.