我对excel公式相对较新,所以我不知道如何处理这个问题,或者通过搜索找到一个好的答案。
我有以下数据:
我想获取每行中E列中包含的公式字符串,将变量替换为同一行中的数据并计算表达式。我不知道这是否可行,但我愿意尝试使用VB宏或其他任何需要。
使用上述思路:
B8 = SUM(4 +(8/2))
B9 = SUM(5 +(6/2))
C8 = SUM(5 +(6/2))
等...
如果这可能是ISN,那么我真正的首要目标就是为公式提供一个单一的位置。我将拥有超过3列的数据,因此能够在一个位置更新它对我来说是完美的。任何帮助表示赞赏。
答案 0 :(得分:4)
使用的定义名称和实际编写的公式。
选择包含从列A
开始的数据的所有行
然后单击主选项卡中的公式\定义名称单击从选择中创建
然后将公式复制到第8行和第9行的相应列
请注意,根据选择创建的已定义名称是在工作簿级别添加的,如果有其他类似的工作表,则可能会出现问题...这可以通过在工作表级别创建名称来进行锻炼,而使用“定义名称”选项
使用
答案 1 :(得分:1)
我尝试使用更动态的解决方案,使用Vlookup
查找要添加到一起的值。
这里有我的数据(请注意显示的公式是旧的,请参阅编辑):
前两个答案块分别是:
=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更直接地使用E8
和E9
,所以如果你编辑那些公式,其他公式也会改变......
修改 - 这是最好的"解决方案,只要您需要做的就是在E8
和E9
中编辑变量名称,公式将自行更新。 (如果您按照上面的布局进行操作),请在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将自行更新。