我有一个比例,根据该比例我决定乘法系数的值。比例如下:
这意味着:
Category1
:value>=1.000.000
时coef
为1
,value>=500.000
时coef
为0.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}}
字面意思是硬编码,看起来并不好看。也许还有更好的方法吗?有什么建议吗?
公式视图:
答案 0 :(得分:2)
您可以COUNTIF(range, [criteria] < value) * 0.2
作为0.2
每个coef
阶段添加=COUNTIF(D2:H2, "<"&C8) * 0.2
。
向您的数据执行:*
,计算值传递的阶段H2
每个阶段的值。
如果范围必须在I2
0
为value
为COUNTIF()
之前,那么您的计数就会超过MainCat
,并且会被计算在内。
要将MATCH()
与基于MainCat
的正确类别进行动态搜索相结合,您Code
row
Code
会INDIRECT()
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
- 循环,并且您(和您的用户)只能在单元格中看到一个干净的函数调用。