我在 Excel 表中有大量数据,用户直接输入,添加包含新数据的新行。每行新数据代表一位客户。每位客户都有一个单元格,其中包含:县、负责人、价格和部门。
用户在添加新数据时首先要选择一个县,然后根据该县,他们会得到一个下拉列表,其中列出了在这个县内负责领导小组的不同领导人。
到目前为止,价格和部门栏已由下面的一段 excel“代码”填充。代码只是获取领导者的值,在表中查找它,并在表中查找领导者所在的行,然后将行号返回给索引函数,然后索引函数可以选出适当的价格和部门。
INDEX('Pres data'!D$5:D$141;COMPARE(W524;'Pres data'!C$5:C$141;0)))
然而现在,部门已经进行了重大调整,如果更新表格,所有历史值都将不正确,而且由于这些值是由代码生成的,我不能直接删除不应更改的客户端的代码。
我可以复制部门单元格的当前值并手动将其粘贴到不应更改的客户端中,但这似乎不是最佳解决方案。
希望您能够理解这个设置。:) 我不知道如何处理这个问题,并且相信这主要是我们自己的设计缺陷。
因此,有关如何在 Excel 中处理历史值的任何想法也很好。
答案1
对此有几种方法。
如果您不想复制现有单元格并将其粘贴为值,则可以引入一个新列来标识应使用哪个代码。在 A 列之前插入一个新列。对于历史值,请输入“A”,对于新值,请输入“B”。您可以使用公式来确保每个新行现在都接收值 B,例如,如果最后一个历史值输入在第 524 行,之后只应查找新值,请使用如下公式:
=if(row()>524;"B";"A")
(我不知道你的语言中的 IF() 和 ROW() 是什么,但我相信你能找到答案。)然后你可以隐藏 A 列。
然后向 Pres 数据查找表添加新列。在 E 列中添加新值。在单元格 D4 中输入“A”,在 E4 中输入“B”。然后,您可以更改整个表中的查找公式
=INDEX('Pres data'!D$5:E$141;COMPARE(W524;'Pres data'!C$5:C$141;0);COMPARE(A524;'Pres data'!$D$4:$E$4;0))
答案2
我建议保留历史数据和函数(也许重命名它们以反映其状态),并为新数据创建新的表和函数。这样可以让别人看到历史数据是如何计算的。
另一种方法是复制所有历史数据,然后使用选择性粘贴功能将值粘贴到新工作表中。然后修改公式并将其用于新行。这将保留旧数据,但只保留值。