我有一张 Excel 工作表,用于重新格式化来自 Access DB 的数据,然后这些数据会反馈到 ESRI 的 ArcMap 中。一切工作正常,只是工作表需要在不同时间(不是同时)从不同的 Access DB 加载数据,有时 Access DB 的记录数不同,这会导致重新格式化工作表错位。
例如,DB1 有 4 条记录;DatavalueA、DatavalueB、DatavalueC、DatavalueD。DB2 仅有 3 条记录;DatavalueA、DatavalueC、DatavalueD(缺少 DatavalueB,因为它不适用于该 DB)。
当我设置重新格式化工作表选项卡以查看 DB1 时,我将列布局为显示 DataValueA 到 DataValueD,将其链接到数据源工作表选项卡,将 Access 文件内容显示为 4 行数据值。但随后我加载了 DB2,它在 Access 源选项卡上只有 3 行,这意味着引用 DB1 源选项卡中单元格 A4 的重新格式化选项卡单元格现在必须引用 DB2 源选项卡中的单元格 A3。
为了解决这个问题,我想知道是否有任何方法可以将名称或条件与源数据工作表单元格关联起来,以便重新格式化工作表可以引用这些单元格而不是单元格地址?即“重新格式化单元格 = DataSourcePolygonArea IF ((CruiseType = 'Type1') & (Method = 'ground'))” - 这意味着重新格式化单元格将查看源数据并找到 CruiseType 和 Method 有效的行,然后使用该行中的 DataSourcePolygonArea。
我知道,解释起来很复杂,但实际上我只是想知道当工作表中的某些信息不在稳定的单元格引用中时,如何找到这些信息。最终,我必须验证两列中的值是否正确,才能返回第三列中的值,但我会尽量简化,以便弄清楚基本情况(例如,如果 A1="值 1" 且 B1="值 2",则返回 C1 的值)
下面是一些示例数据的图片,用于进一步解释,这是一个链接到电子表格中的示例:
答案1
正如安德烈提到的,使用命名单元格(或范围)而不是索引。
- 在单元格上,右键单击并命名 ->
DATA1
- 在第二个单元格上,右键单击并命名 ->
DATA2
- 在引用数据的单元格上,说
=SUM(DATA1, DATA2)
现在,当您将特定数据项移动到另一个单元格时,您会发现 SUM 单元格仍然具有正确的金额。