在 Excel 中,我有一个包含 4 列的表格:供应商、年初至今营业额、回扣条款、回扣百分比。在回扣条款栏中,这显示了我们根据营业额返回的百分比,并且每个供应商的情况都不同。例如,供应商 XYZ 的回扣期限为 0-9,999 = 0、10,000-24,999 = 2%、25,000+ 则为 3%。
如果每个供应商的回扣条款都相同,但每个供应商都在变化,那么这会很容易,所以我想我需要尝试搜索然后如果,你知道这是否可能。
查看一些数据的示例:
供应商 | 年初至今营业额 | 回扣条款 | 回扣% |
---|---|---|---|
XYZ PLC | £700.00 | “0 英镑到 9,999 英镑 = 0 英镑 10,000 英镑到 24,999 英镑 = 2% 25,000 英镑+ = 总支出的 3%” |
x |
ABC PLC | £30,000.00 | “2.5 万英镑至 5 万英镑 = 1.5% 5 万英镑至 20 万英镑 = 2.5% 20 万英镑以上 = 总支出的 5.0%” |
x |
JJ PLC | £1,000,000.00 | “0 英镑至 1,099,999 英镑 = 1.0% 1,100,000 英镑至 1,299,999 英镑 = 2.0% 1,300,000 英镑+ = 4.0%” |
x |
LL PLC | £700.00 | “0 英镑至 299,999 英镑 = 3.0% 300,000 英镑至 399,999 英镑 = 3.5% 400,000 英镑至 449,999 英镑 = 4.0% 450,000 英镑+ = x |
x |
谢谢,
目前我只有一个基于每次回扣的 IF 函数,但这非常冗长。
例如:
=IF(B3<10000, B3*0,
IF(AND(B3>=10000, B3<25000), B3*0.02,
IF(B3>=25000, B3*0.03,"ERROR")))
想知道是否可以提前进行搜索?
要利用现有的数据来完成此操作,我们必须使用公式来标准化数据以执行 VLOOKUP:
=VLOOKUP(B2,DROP(REDUCE("",TEXTSPLIT(C2,CHAR(10)),LAMBDA(_z,_y,VSTACK(_z,HSTACK(TAKE(TOROW(--TEXTSPLIT(_y,{" ","+","="}),3),,1),TAKE(TOROW(--TEXTSPLIT(_y,{" ","+","="}),3),,-1))))),1),2,TRUE)
整个
DROP()
部分是为了使细胞正常化。
注意:我必须将
K
更改为其数值才能完成这项工作。 这些值必须是实际数字而不是字符串。
现在如果您对数据进行标准化:
那么公式就简单多了:
=VLOOKUP(B2,FILTER(O:P,N:N=A2),2,TRUE)