在 Google 个工作表中动态查找介于一系列值之间的值
Dynamically find a value in between a range of Values in Google Sheets
在 google 工作表中,我有一个数据集,用于识别特定尺寸范围内产品的历史定价乘数。在这种情况下,我使用的是平方英寸。数据在 table 中设置如下:
Data set
我所做的是创建一个公式,允许我指定任何宽度、高度和数量,找到当前平方英寸,然后根据该特定尺寸产品在范围内的位置找到相应的价格我在数据集中提供的尺寸。
例如,如果平方英寸等于 150,则此尺寸的价格为每平方英寸 0.6(或 60 美分)。 (90)
我已经解决了这个问题。这是我的公式:
=(A10*B10)*C10)*(filter(C2:C6,A2:A6<=((A10*B10)*C10),B2:B6>((A10*B10)*C10))
在此示例中,A10 = 高度,B10 = 宽度,C10 = 数量
所以,就像我说的,这很好用。我的问题是,平方英寸值为 105 的产品最终每平方英寸的成本与平方英寸值为 214 的产品相同。只有在超过 250 平方英寸阈值后,我的每平方英寸成本才会改变。
有没有办法动态找到合适的乘数,例如,平方英寸值 175 的乘数介于 .8 和 .6 之间,因为它落在 100 平方英寸的中间,并且250平方英寸?
如果我不解释所涉及的数学,我相信你会原谅我,但这个公式应该产生你想要的结果:
=(A10*B10*C10)*(VLOOKUP(A10*B10*C10,A2:C6,3,TRUE)+(((A10*B10*C10)-VLOOKUP(A10*B10*C10,A2:A6,1,TRUE))*(ABS(VLOOKUP(A10*B10*C10,A2:C6,3,TRUE)-INDEX(C2:C6,MATCH(VLOOKUP(A10*B10*C10,A2:C6,3,TRUE),C2:C6,0)-1))/(VLOOKUP(A10*B10*C10,A2:B6,2,TRUE)-VLOOKUP(A10*B10*C10,A2:A6,1,TRUE)))))
我会假设您有某种计算器来计算系数。
如果面积值在C13
那么在A16:C17
我们可以得到计算范围。放入 A16
=ARRAY_CONSTRAIN(OFFSET(A2:C6,MATCH(C13,A2:A6,1)-2,0),2,3)
之后我们可以计算出部分价格
=IF(ISNUMBER(A16),C16-(C16-C17)*(C13-A17)/(B17-A17),C17)
一个公式解
=VLOOKUP(C13,B2:C6,2)-
(VLOOKUP(C13,B2:C6,2)-VLOOKUP(C13,A2:C6,3))*
(C13-VLOOKUP(C13,A2:C6,1))/
(VLOOKUP(C13,A2:C6,2)-VLOOKUP(C13,A2:C6,1))
最好的解决方案是使用 TREND。很清楚了。
=TREND(
OFFSET(B2,MATCH(C13,B2:B3)-1,1,2,1),
OFFSET(B2,MATCH(C13,B2:B3)-1,0,2,1),
C13
)
我的sample
参考资料
在 google 工作表中,我有一个数据集,用于识别特定尺寸范围内产品的历史定价乘数。在这种情况下,我使用的是平方英寸。数据在 table 中设置如下:
Data set
我所做的是创建一个公式,允许我指定任何宽度、高度和数量,找到当前平方英寸,然后根据该特定尺寸产品在范围内的位置找到相应的价格我在数据集中提供的尺寸。
例如,如果平方英寸等于 150,则此尺寸的价格为每平方英寸 0.6(或 60 美分)。 (90)
我已经解决了这个问题。这是我的公式:
=(A10*B10)*C10)*(filter(C2:C6,A2:A6<=((A10*B10)*C10),B2:B6>((A10*B10)*C10))
在此示例中,A10 = 高度,B10 = 宽度,C10 = 数量
所以,就像我说的,这很好用。我的问题是,平方英寸值为 105 的产品最终每平方英寸的成本与平方英寸值为 214 的产品相同。只有在超过 250 平方英寸阈值后,我的每平方英寸成本才会改变。
有没有办法动态找到合适的乘数,例如,平方英寸值 175 的乘数介于 .8 和 .6 之间,因为它落在 100 平方英寸的中间,并且250平方英寸?
如果我不解释所涉及的数学,我相信你会原谅我,但这个公式应该产生你想要的结果:
=(A10*B10*C10)*(VLOOKUP(A10*B10*C10,A2:C6,3,TRUE)+(((A10*B10*C10)-VLOOKUP(A10*B10*C10,A2:A6,1,TRUE))*(ABS(VLOOKUP(A10*B10*C10,A2:C6,3,TRUE)-INDEX(C2:C6,MATCH(VLOOKUP(A10*B10*C10,A2:C6,3,TRUE),C2:C6,0)-1))/(VLOOKUP(A10*B10*C10,A2:B6,2,TRUE)-VLOOKUP(A10*B10*C10,A2:A6,1,TRUE)))))
我会假设您有某种计算器来计算系数。
如果面积值在C13
那么在A16:C17
我们可以得到计算范围。放入 A16
=ARRAY_CONSTRAIN(OFFSET(A2:C6,MATCH(C13,A2:A6,1)-2,0),2,3)
之后我们可以计算出部分价格
=IF(ISNUMBER(A16),C16-(C16-C17)*(C13-A17)/(B17-A17),C17)
一个公式解
=VLOOKUP(C13,B2:C6,2)-
(VLOOKUP(C13,B2:C6,2)-VLOOKUP(C13,A2:C6,3))*
(C13-VLOOKUP(C13,A2:C6,1))/
(VLOOKUP(C13,A2:C6,2)-VLOOKUP(C13,A2:C6,1))
最好的解决方案是使用 TREND。很清楚了。
=TREND(
OFFSET(B2,MATCH(C13,B2:B3)-1,1,2,1),
OFFSET(B2,MATCH(C13,B2:B3)-1,0,2,1),
C13
)
我的sample