我被 Google 表格问题困扰了一段时间。我有三张表:“九月”、“十月”和“数量”。 9 月和 10 月的表格具有相同的格式,表格来自 B2:Cxxx ,其中 B2 和 C2 是标题(分别是名称和数量)。数量表的 B 列的名称与 9 月和 10 月表的 B 列中的名称相匹配。我希望根据匹配 B 列中的名称,使用 9 月和 10 月工作表 C 列中的值填充“数量”表中的 D 和 E 列。
我目前使用的公式是:
=IF(ISNA(INDEX(September!C:C; MATCH('Quantity'!$B3; September!B:B; 0))); ""; INDEX(September!C:C; MATCH('Quantity'!$B3; September!B:B; 0)))
这适用于 9 月份,但我想让工作表参考动态化。在数量表上,表格的第一行(第 2 行)以月份命名(例如“九月”、“十月”)。有没有办法根据公式所在同一列的第 2 行中的值动态引用工作表名称?
例如,如果我在 C 列中写入公式,它应该引用“九月”(来自单元格 C2),如果我将其拖到 D 列,它应该引用“十月”(来自单元格 D2)。我需要一个允许我动态引用工作表名称的解决方案,可以使用 R1C1 样式之类的公式(其中我在同一列中引用 R2)或使用 INDIRECT 函数。这样,我可以拖动未来几个月的公式,而无需手动更改工作表名称。
总之,我想在动态选择的月份表(例如,九月、十月)的 B 列中查找数量表的 B3 中的值。如果找到匹配项,它将返回该工作表 C 列中的相应值。如果未找到匹配项,则应返回空白。基本上,它就像带有错误处理功能的 VLOOKUP,但我需要工作表名称是动态的。
我尝试使用间接方法,但遇到了“解析公式错误”,公式如下:
=IF(ISNA(INDEX(INDIRECT("'"&INDIRECT(ADDRESS(2, COLUMN(), 4))&"'!C:C"); MATCH(INDIRECT("B"&ROW()); INDIRECT("'"&INDIRECT(ADDRESS(2, COLUMN(), 4))&"'!B:B"); 0))); ""; INDEX(INDIRECT("'"&INDIRECT(ADDRESS(2, COLUMN(), 4))&"'!C:C"); MATCH(INDIRECT("B"&ROW()); INDIRECT("'"&INDIRECT(ADDRESS(2, COLUMN(), 4))&"'!B:B"); 0)))
解释一下,如果这个公式放在数量表的D45中,它应该:
参考数量表 D2 中的表名称。 在 B45 中查找匹配值。 从动态选择的工作表的 C45 返回相应的值(例如,在 D2 中指定的工作表名称)。 我的目标是基于工作表名称的列标题创建动态引用,并使用行号来保持公式完整,即使在对名称进行排序时也是如此。不幸的是,该公式没有按预期工作,我想知道是否有人遇到过类似的问题或可以提供解决此问题的指导。