包含同一工作表

时间:2015-11-10 17:24:56

标签: excel excel-vba excel-formula vba

我对excel公式相对较新,所以我不知道如何处理这个问题,或者通过搜索找到一个好的答案。

我有以下数据:

enter image description here

我想获取每行中E列中包含的公式字符串,将变量替换为同一行中的数据并计算表达式。我不知道这是否可行,但我愿意尝试使用VB宏或其他任何需要。

使用上述思路:
     B8 = SUM(4 +(8/2))
     B9 = SUM(5 +(6/2))
     C8 = SUM(5 +(6/2))
     等...

如果这可能是ISN,那么我真正的首要目标就是为公式提供一个单一的位置。我将拥有超过3列的数据,因此能够在一个位置更新它对我来说是完美的。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:4)

使用的定义名称和实际编写的公式。

选择包含从列A开始的数据的所有行 然后单击主选项卡中的公式\定义名称单击从选择中创建

enter image description here

然后将公式复制到第8行和第9行的相应列

enter image description here

enter image description here

请注意,根据选择创建的已定义名称是在工作簿级别添加的,如果有其他类似的工作表,则可能会出现问题...这可以通过在工作表级别创建名称来进行锻炼,而使用“定义名称”选项

使用

答案 1 :(得分:1)

我尝试使用更动态的解决方案,使用Vlookup查找要添加到一起的值。

这里有我的数据(请注意显示的公式是旧的,请参阅编辑):

enter image description here

前两个答案块分别是:

=SUM(VLOOKUP("Az",$A$2:$D$6,column(),FALSE)+(VLOOKUP("Cx",$A$2:$D$6,column(),FALSE)/2)) =SUM(VLOOKUP("By",$A$2:$D$6,column(),FALSE)+(VLOOKUP("Ev",$A$2:$D$6,column(),FALSE)/VLOOKUP("Dw",$A$2:$D$6,column(),FALSE)))

...然后拖过来。

但我意识到你最终还是希望能够更快地编辑公式变量,所以我的第二个答案(第11行和第12行)使用F,G和H列来寻找变量:

=SUM(VLOOKUP($F$11,$A$2:$D$6,COLUMN(),FALSE)+(VLOOKUP($G$11,$A$2:$D$6,COLUMN(),FALSE)/2))
=SUM(VLOOKUP($F$12,$A$2:$D$6,COLUMN(),FALSE)+(VLOOKUP($G$12,$A$2:$D$6,COLUMN(),FALSE)/VLOOKUP($H$12,$A$2:$D$6,COLUMN(),FALSE)))

这样能让你到达你想要的地方吗?我试图想办法使用indirect() ro更直接地使用E8E9,所以如果你编辑那些公式,其他公式也会改变......

修改 - 这是最好的"解决方案,只要您需要做的就是在E8E9中编辑变量名称,公式将自行更新。 (如果您按照上面的布局进行操作),请在B8中使用 =SUM(VLOOKUP(MID($E$8,SEARCH("(",$E$8)+1,2),$A$2:$D$6,COLUMN(),FALSE)+(VLOOKUP(MID($E$8,SEARCH("+(",$E$8)+2,2),$A$2:$D$6,COLUMN(),FALSE)/2))

并在B9中, =SUM(VLOOKUP(MID($E$9,SEARCH("(",$E$9)+1,2),$A$2:$D$6,COLUMN(),FALSE)+(VLOOKUP(MID($E$9,SEARCH("+(",$E$9)+2,2),$A$2:$D$6,COLUMN(),FALSE)/VLOOKUP(MID($E$9,SEARCH("/",$E$9)+1,2),$A$2:$D$6,COLUMN(),FALSE)))

这样,如果您想要求和,请说Sum(Cx+(Ev/2))所有您需要做的就是编辑E8到该公式,B8中的answer1将自行更新。