问与答82: 如何动态更新价格?

2020-04-24 19:49:14 浏览数 (1)

Q:在如下图1所示,在列E中添加新的价格增长值后,列B中的价格会自动更新,如何用公式实现?

图1图1

效果如下图2所示。

图2图2

(注:这是在chandoo.org论坛上看到的一个案例,觉得很好,特整理在此与大家分享。)

A:使用PRODUCT函数和命名公式来解决。

在单元格B2中输入下面的数组公式:

=A2*PRODUCT(1 PriceRises/100)

向下拉至所需单元格。

公式中使用了一个名称PriceRises,即:

名称:PriceRises

引用位置:=OFFSET(Sheet1!$E$2,,,COUNTA(Sheet1!$E:$E)-1,1)

这是一个动态的名称,返回列E中除E1外的含有值的单元格区域,如上图1所示,返回单元格区域E2:E4。如果在列E中添加值,例如在E5中添加值2,则该名称返回E2:E5。这是公式中使用名称的一个好处,当添加值时,名称区域自动扩展,公式也会自动更新。

回到公式:

=A2*PRODUCT(1 PriceRises/100)

对于上图1中的数据,可以解析为:

=A2*PRODUCT(1 {4;5;6}/100)

解析为:

=A2*PRODUCT(1 {0.04;0.05;0.06})

解析为:

=A2*PRODUCT({1.04;1.05;1.06})

这里PRODUCT函数返回1.04×1.05×1.06=1.15752,代入公式得:

=A2*1.15752

结果为:

=100*1.15752

=115.752

0 人点赞