【发布时间】:2015-08-28 13:55:31
【问题描述】:
我的工作簿中有一个后端数据,工作表称为“任务列表”。这只是此工作表 A 列中列出的任务列表。
然后我有 4 个单独的工作表,它们使用 =indirect("'Task List'!A"&ROW()-5) 函数和这 4 个工作表引用这些任务。我的问题是,在 4 张工作表中,每一行都有一个与之配套的数据列表,因此当在“任务列表”工作表中添加新任务(在单元格之间添加)时,数据不会随着任务向下移动,相反,数据保持不变,而只是任务列表向下移动...为了更清楚地解释,我在下面显示了这一点:
Task List Data Sheet 1 Data Items
task 1 Task 1 Data 1
task 2 Task 2 Data 2
task 3 Task 3 Data 3
task 4 Task 4 Data 4
task 5 Task 5 Data 5
现在插入新任务时......
Task List Data Sheet 1 Data Items
task 1 task 1 Data 1
task 2 task 2 Data 2
NEW TASK INSERTED HERE NEW TASK INSERTED HERE Data 3
task 3 task 3 Data 4
task 4 task 4 Data 5
task 5 task 5 BLANK
如您所见,示例中的数据保留在上方。有什么方法可以使数据通过间接函数移动,或者有更好的方法吗? - 以这种方式构建工作表的原因是任务列表中的任务必须分成 5 个工作表,这样可以节省在必须添加新任务时将任务复制到每个工作表的时间。
【问题讨论】:
-
'使用间接函数移动数据'意味着不要使用 INDIRECT,只需使用常规直接引用。 INDIRECT,按照您的布局方式,始终指向 网格位置,而不是唯一的“单元 ID”。
-
这是我在您解决的其他帖子中遇到的问题,如果我使用直接引用并且您将任务添加到任务列表中,它不会在任务列表中包含新任务
-
这基本上是权衡 - 如果您希望一个单元格引用一个确切的“单元格 ID”,您需要使用直接引用。即使添加或删除了一行,这也会将其锁定在“正确”单元格上。如果您插入一行并想在另一张工作表上说明它,则需要在其中插入一行并复制公式来说明它。请参阅下面我可能的解决方案,它允许您对唯一 ID 使用 INDIRECT 引用,并使用 INDEX/MATCH 为给定任务名称提取适当的信息。