Excel与多个IF的比较

时间:2018-02-12 10:26:33

标签: excel excel-formula

我有一个比例,根据该比例我决定乘法系数的值。比例如下:

Scales

这意味着:

  • Category1value>=1.000.000coef1value>=500.000coef0.8 Category2等等。

  • 同样的逻辑适用于Company !MainCat|Sales Amount| Company1|T1 | 6.500.000| Company2|T2 | 70.000| ;

然后我按以下格式输入数据:

(=ratio*MaxCoef)

我需要找到相应的系数,系数的比值和值 =IF(C8>=$D2;$D$1;IF(C8>=$E2;$E$1;IF(C8>=$F2;$F$1;IF(C8>=$G2;$G$1;IF(C8>=$H2;$H$1;IF(C8>=$I2;$I$1)))))) 。目前,我发现以下方式: - 对于company1:

{{1}}

字面意思是硬编码,看起来并不好看。也许还有更好的方法吗?有什么建议吗?

公式视图:

Data

3 个答案:

答案 0 :(得分:2)

您可以COUNTIF(range, [criteria] < value) * 0.2作为0.2每个coef阶段添加=COUNTIF(D2:H2, "<"&C8) * 0.2

向您的数据执行:*,计算值传递的阶段H2每个阶段的值。

如果范围必须在I2 0valueCOUNTIF()之前,那么您的计数就会超过MainCat,并且会被计算在内。

要将MATCH()与基于MainCat的正确类别进行动态搜索相结合,您Code row CodeINDIRECT() range {1}}位于=COUNTIF(INDIRECT("D"&MATCH(B8,B:B,0)&":H"&MATCH(B8,B:B,0)),"<"&C8)*0.2的位置,并使用MATCH(B8,B:B,0)将其应用为B8

T1

row - 将与INDIRECT("D"&MATCH(B8,B:B,0)&":H"&MATCH(B8,B:B,0)上的值匹配(比如说INDIRECT("D"&2&":H"&2))并返回range 2。

COUNTIF() = worksheet.Cells[row, 4].Hyperlink = "www.example.com"; - 会将文字转换为SELECT od.owner_id, od.owner_name, SUM(t.amount) AS amount FROM owner_details od INNER JOIN vehicle_owner vo ON od.owner_id = vo.owner_id INNER JOIN `transaction` t ON vo.v_id = t.v_id GROUP BY od.owner_id 使用的实际transaction_type

答案 1 :(得分:0)

创建一个表,Mapping'包含两列,Category'和Coefficient',然后按照https://www.deskbright.com/excel/using-index-match/中的描述使用INDEX-MATCH。

= INDEX(Mapping [Category]; MATCH([Coefficient]; Mapping [Coefficient]; -1))

此示例假定您将此公式放入一个表中,该表具有名为Coefficient'的列,其中包含多个IF的输入值。 诀窍是,作为match_type参数,根据您的需要提供-1或1。

答案 2 :(得分:0)

可以在VBA中执行此操作。编写自己的函数,以类似的结尾

=MyOwnScale(C8; B8; A2:I3)

VBA函数的第一个参数是值,第二个是类别,第三个是具有阈值的范围。因此,您可以在VBA代码中移动级联IF - 循环,并且您(和您的用户)只能在单元格中看到一个干净的函数调用。