与其他表格上不同坐标上的同一张表间接

与其他表格上不同坐标上的同一张表间接

我只是想知道当同一张表位于不同的单元格范围时,是否可以自动化间接函数,例如,在一种情况下为“C4:D10”,而在另一张表上为“C5:D11”。我们希望使用间接函数从同一张表上的那些表中获取一些数据。

答案1

当然。

您可能要执行的一个示例是创建一个表/范围,其中有一列用于为每个工作表的数据范围起一个简短但有意义的名称。(为了清晰起见,名称越多越好,但如果在输入单元格中键入以切换工作表的表格,则会变得越累。但是...如果为输入单元格附加/启用了下拉列表,这几乎就不再是问题了。)

然后,您将拥有一个包含公式的列=A1:K43(使用此时包含表格的任何地址)。这些公式会产生错误#SPILL!,但那完全无关紧要。您只希望它们存在以从公式中提取信息,当您调整表格边框时,Excel 会负责调整这些公式。有趣的是,与 Excel 呈现的许多错误不同,该#SPILL!错误不会停止进一步使用单元格中的信息FORMULATEXT(),例如,可以读取单元格内的公式,并且 Excel 可以对您影响范围引用的大多数操作进行自动调整。

然后,需要的最后一列是FORMULATEXT()获取最新公式的引用,它将解决数据范围,并用包裹的引用从中SUBSTITUTE()删除初始值。=

您可以通过一个输入单元格来访问每个工作表的引用,在该单元格中键入您为每个表格指定的名称。如果使用该单元格的下拉列表,您只需从列表中选择名称即可。然后,在您想要结果表的左上角的位置,您可以使用选择的查找公式(几乎),也许VLOOKUP(),在查找表的第三列中找到值。(但不是XLOOKUP()...它被这个想法所扼杀。

INDIRECT()它包起来就可以了。类似以下内容:

=INDIRECT(  VLOOKUP(  E1,  A1:C1098,  3,  FALSE)  )

(如果您的查找单元格是 E1,并且查找范围 A1:C1098 中有 1098 个这样的表。调整似乎是个好主意...)

您可以做得更花哨,但基本思路已经阐明。“花哨”的例子可能是使用命名范围为每个数据表保留一个列表,以便您的下拉列表从中绘制。我会这样做,并且我会将该列表保存在另一个命名范围内。然后您无需查找,因为下拉列表会为您查找。如果进行查找,您可以将部分FORMULATEXT()内容放在查找公式本身中,因此您只需要一个两列查找表。诸如此类。就我个人而言,我喜欢先走路后跑步,除非“跑步”部分清晰易懂,然后每次打开电子表格时都会改进它。或者在共享环境中,每隔几个月也许会检查一下幕后发生的事情。用户知道的事情?很大程度上取决于公司文化。

我不建议走这OFFSET()条路,因为那似乎充满了陷阱。你可以将它哄骗成你肯定想要的动态形式,因为每个范围可能到处都是,但是......它不会那么直观。这没什么错,只是这对你描述的情况来说更容易。

此外,只要“易失性”使用在性能方面INDIRECT()与“易失性”使用大致相同OFFET(),那么在这方面没有什么可以让两者更具优势。并不是说“易失性”对现代计算机(例如,任何运行 Windows 10 的设备)来说都没有任何意义,直到您达到 50,000-100,000 行和 20-30 列的规模,即使这样,我的 2015 年 12 月框在 100,000 x 30 的示例中也只会闪烁一秒钟。一秒钟,字面上的意思,并不是对这个词的不精确使用。但您的使用可能涉及移动设备、Chromebook、旧电脑等,在这种情况下,其中一个或另一个实际上并没有区别,这对您来说可能很重要。

相关内容