我正在尝试让操作员将信息剪切并粘贴到 Excel 电子表格中,然后我将使用 Vlookup 等来获取我需要的信息。问题是我有多个表格,它们会根据当天的信息调整大小。我无法对信息的单元格进行硬编码。
此外,由于有多个表格被复制,而我需要所有表格,所以我需要的项目将在 A 列中列出多次。我需要能够让它根据标题查找列,并根据标题查找行。我查看了间接、匹配等,但似乎无法让它工作。
抱歉。我想要得到的结果是,它将能够查找以下信息,例如:
以 ID 为标题的行和以 AVIL 为标题的列中的值。问题是,我试图查看的数据可能在某一天包含所有 8 行,而第二天包含 14 行,或者可能只有 5 行。并非所有列每天都可用,这意味着结果所在的列可能始终不同。
我无法对每个表进行单独查找,因为这样会用硬编码来查找信息。
答案1
我将讨论您提到的部分:能够通过输入标题来找到所选行和列交叉点的值。示例数据的确切格式使得扩展变得困难,因为在接收数据的方式和接收数据的方式方面存在很多可能性(假设您似乎拥有对事物的所有权控制权)。
那么,如何获取数据点?您需要将标题转换为可以通过查找公式选择的内容。使用函数即可实现MATCH()
。如果您的标题位于第一行和第一列,例如 B1:C1 和行 2:9,您可以在两个匹配函数中输入这些范围,一个用于列标题,一个用于行标题:(假设您在 F1(列)和 F2(行)中输入标题的值)
=MATCH(F1,B1:C1,0)
=MATCH(F2,A2:A9,0)
这里有一点不太重要,但确实有很大区别,例如,列,公式将返回 1 或 2,但您实际上需要 2 或 3(因为您有行标题,然后是两个数据列)。因此,从左侧一个单元格开始范围(行上方一个单元格)。因此,您搜索“AVIL”并得到其标题列的 2,搜索“ID”,得到行的 5。
现在您使用该INDEX()
函数来指定该列和行的交点,并且这就是您的值:
=INDEX(A1:C9, MATCH(F1,B1:C1,0), MATCH(F2,A2:A9,0))
因此,您可以轻松获得所需的信息。唯一棘手的部分是您必须手动输入或使用鼠标输入公式的范围。不妨只查看数据范围并复制和粘贴正确的结果,是吗?但是,如果您可以让粘贴的数据表横跨电子表格的右边缘,这样它们的最后一行下面都没有任何东西,那么这个问题就几乎不存在了。
然后,您要做的就是(假设列数是一致的,即一个表格本周没有 3 列,下周没有 11 列)使用适当的列范围,我们假设该范围永远不会改变,因此只需执行一次,就永远执行下去,而不是使用 9 行(如 A1:A9)之类的值,而是使用永远不会超过的更高值。也许是 A500。当然,此示例中包含 491 个空白行,但谁在乎呢?这不会影响任何事情,并且它确实确保您始终查看所有数据,而不仅仅是大量数据,并且您永远不必编辑范围内的最高行。
这样您就无需编辑公式了。每个表有一对单元格用于输入查找信息,还有一个单元格用于保存结果。
所有这些都可以放在第二张工作表上,这样为您粘贴数据的人就无需与其交互。
但是……如果你不需要一些有用的结构来进行数据输入,那么这真的只是一场噩梦。解决方案将取决于具体的例子。