Google sheets 如何使用命名范围的升序索引缩短多个If

Google sheets 如何使用命名范围的升序索引缩短多个If,google-sheets,Google Sheets,我有一个谷歌电子表格公式,有两个命名范围:RangeA和RangeB =(1+VLOOKUP($A2,Test!RangeA,2,0)) * VLOOKUP($A2,Test!RangeA,3,0) + if(B2>=11,(index(Test!RangeB,1,2) - 1) * ((1+vlookup($A2,Test!RangeA,2,0))^(index(Test!RangeB,1,1)-1)) * vlookup($A2,Test!RangeA,3,0),0) + if(B2&

我有一个谷歌电子表格公式,有两个命名范围:RangeA和RangeB

=(1+VLOOKUP($A2,Test!RangeA,2,0)) * VLOOKUP($A2,Test!RangeA,3,0)
+ if(B2>=11,(index(Test!RangeB,1,2) - 1) * ((1+vlookup($A2,Test!RangeA,2,0))^(index(Test!RangeB,1,1)-1)) * vlookup($A2,Test!RangeA,3,0),0)
+ if(B2>=21,(index(Test!RangeB,2,2) - 1) * ((1+vlookup($A2,Test!RangeA,2,0))^(index(Test!RangeB,2,1)-1)) * vlookup($A2,Test!RangeA,3,0),0)
+ if(B2>=41,(index(Test!RangeB,3,2) - 1) * ((1+vlookup($A2,Test!RangeA,2,0))^(index(Test!RangeB,3,1)-1)) * vlookup($A2,Test!RangeA,3,0),0)
+ if(B2>=61,(index(Test!RangeB,4,2) - 1) * ((1+vlookup($A2,Test!RangeA,2,0))^(index(Test!RangeB,4,1)-1)) * vlookup($A2,Test!RangeA,3,0),0)
+ if(B2>=81,(index(Test!RangeB,5,2) - 1) * ((1+vlookup($A2,Test!RangeA,2,0))^(index(Test!RangeB,5,1)-1)) * vlookup($A2,Test!RangeA,3,0),0)


问题是:它包含许多long if(比上面的示例长得多),我认为可以缩短这些if,因为它每次增加索引1行。请提供帮助。

将索引替换为:

vlookup(row(indirect("1:"&match(B2,index(Test!RangeB,0,1)))),{row(Test!RangeB)-min(row(Test!RangeB))+1,Test!RangeB},3,false)
如果,保留第一个
,并去掉其余的:

=(1+VLOOKUP($A2,Test!RangeA,2,0)) * VLOOKUP($A2,Test!RangeA,3,0)
+ if(B2>=11,sumproduct((vlookup(row(indirect("1:"&match(B2,index(Test!RangeB,0,1)))),{row(Test!RangeB)-min(row(Test!RangeB))+1,Test!RangeB},3,false) - 1) * ((1+vlookup($A2,Test!RangeA,2,0))^(vlookup(row(indirect("1:"&match(B2,index(Test!RangeB,0,1)))),{row(Test!RangeB)-min(row(Test!RangeB))+1,Test!RangeB},2,false)-1)) * vlookup($A2,Test!RangeA,3,0)),0)

将索引替换为:

vlookup(row(indirect("1:"&match(B2,index(Test!RangeB,0,1)))),{row(Test!RangeB)-min(row(Test!RangeB))+1,Test!RangeB},3,false)
如果
,保留第一个
,并去掉其余的:

=(1+VLOOKUP($A2,Test!RangeA,2,0)) * VLOOKUP($A2,Test!RangeA,3,0)
+ if(B2>=11,sumproduct((vlookup(row(indirect("1:"&match(B2,index(Test!RangeB,0,1)))),{row(Test!RangeB)-min(row(Test!RangeB))+1,Test!RangeB},3,false) - 1) * ((1+vlookup($A2,Test!RangeA,2,0))^(vlookup(row(indirect("1:"&match(B2,index(Test!RangeB,0,1)))),{row(Test!RangeB)-min(row(Test!RangeB))+1,Test!RangeB},2,false)-1)) * vlookup($A2,Test!RangeA,3,0)),0)

谢谢。我试过了,但它只在第一行正确:它适用于RangeB的固定值。但是如果我改变81->80,它将不再工作。正如我所提到的,我缩短了这些范围的值。我将把最低的值放在过渡处,我想不出其他方法。您需要查找步骤,或者返回到您的方法。或者您是说您将
H20
更改为
80
,并且它停止工作了?如果您将范围B中的步骤更改为80,您还需要更改原始公式。然后返回的公式将匹配。谢谢。我试过了,但它只在第一行正确:它适用于RangeB的固定值。但是如果我改变81->80,它将不再工作。正如我所提到的,我缩短了这些范围的值。我将把最低的值放在过渡处,我想不出其他方法。您需要查找步骤,或者返回到您的方法。或者您是说您将
H20
更改为
80
,并且它停止工作了?如果您将范围B中的步骤更改为80,您还需要更改原始公式。然后返回的公式将匹配。我不确定我是否理解这个公式应该做什么。兰布利库斯:这是用来计算我游戏中英雄的力量的。不过它被简化了@ScottCraner:谷歌表单,sirI,我不确定我是否理解这个公式的作用。兰布利库斯:这是用来计算我游戏中英雄的力量的。不过它被简化了@ScottCraner:谷歌表单,先生