【发布时间】:2018-09-14 09:58:11
【问题描述】:
所以,我这里有这个公式(有效)
=SUM(SUMIF('Inventory 11.09.2018'!$B$2:$B$47;B2;'Inventory 11.09.2018'!$C$2:$C$47);SUMIF($H:$H;B2;$I:$I))
我想实现,而不是实际的工作表名称(库存 11.09.2018),公式始终引用表格的最后一个工作表。每次完成库存时,都会将工作表添加到表格中。
我做了一些研究,发现了这个解决方案:How do I get my formula to always reference to the last sheet?
我对这个解决方案所做的是定义两个范围名称。
wshNames
=RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1)))
wshNameLast
=INDEX(wshNames,COUNTA(wshNames)+RAND()*0)
然后我开始将我的公式更改为:
=SUM(SUMIF(wshNameLast&"!$B$2:$B$47";B2;wshNameLast&"!$C$2:$C$47");SUMIF($H:$H;B2;$I:$I))
但是当点击返回时它会抛出这个错误信息: Excel_error_in_formula
因为这是德语,所以基本上是这样写的:
这个公式有问题。
您不想输入公式?
然后解释公式前撇号的作用。
如果我只在公式中使用定义的名称,例如
=wshNameLast
他们工作。如果我像这样删除公式周围的“SUM”,只是为了测试它是否可以在没有“SUM”的情况下工作
SUMIF('Inventory 11.09.2018'!$B$2:$B$47;B2;'Inventory 11.09.2018'!$C$2:$C$47)
它也不起作用。所以我认为定义的范围名称与我想使用的公式结合起来有问题。
问题是:我做错了什么,我该如何开始工作?另外,如果可能的话,我想在没有 VB/VBA 的情况下解决这个问题。
【问题讨论】:
标签: excel excel-formula named-ranges