【问题标题】:How to create Vlookup formula to replace old data with new one如何创建 Vlookup 公式以用新数据替换旧数据
【发布时间】:2015-07-23 13:56:34
【问题描述】:

我的公司每周都会收到来自不同提供商的更新。他们都提供相同类型的数据,但顺序不同(例如:一家公司将提供 A 列 = 名称 / B 列 = 数量 / C 列 = 货物。当另一将给出A列=货物/B列=名称/C列=数量)。我想我需要创建一个 Vlookup 公式,它会自动找到新数据,并在正确的位置用它替换旧数据(如果数据从上周发生变化)。我知道每个提供商的公式都必须不同,因为它们都有不同的格式。 为了帮助您,我将在我们的模板中编写列的顺序,然后是提供者之一的顺序: 我们的模板

A:Reference Number
B:IMO
C:Vessel Name
D:Commodity
E:Product detail
F:Quantity
G:Departure country
H:Departure port
I:ETA
J:ETB
K:ETD
L:Current status
M:Destination Continent
N:Destination Country
O:Destination Port
P:Charterer
Q:receiver

提供者模板:

B:Vessel name
C:ETA
D:ETB
E:ETD
F:Departure Country
G:Departure port
H:Destination Continent
I:Destination Country
J:Destination Port
K:Commodity
L:Product detail
M:Quantity
N:Name of vessel
O:IMO
P:Reference code
Q:Charterer
R:Current status.

知道怎么做吗???

【问题讨论】:

  • 它与编程语言 C有什么关系?
  • 这不是编码服务。如果您有任何具体问题,请发帖minimal reproducible example
  • 提供数据示例以及工作表的屏幕截图。请记住,数据操作的关键是拥有统一的源数据。如果您的数据完全不统一,这样做将很难(如果不是不可能的话)。但是,如果我没看错,标签名称总是一致的,只是放在不同的列中(但拼写相同,并且在同一行中)。这变得相对简单,但我们需要查看您的数据是什么样的,您希望输出的外观如何,以及您已经尝试过的解释。
  • @Grade'Eh'Bacon 事实并非所有提供者模板都具有相同的标签名称。有些会说产品,有些会说商品,有些甚至不会有这个标签。但是,每个供应商总是以相同的顺序使用相同的标签(为什么我明白我需要为每个供应商使用不同的代码)我相信密钥将驻留在船的名称中,这是我们唯一不变的.想法是在每周更新中查找船的名称,并将新值传输到当前模板。最有可能改变的数据是 ETA ETB ETD :s
  • @Grade'Eh'Bacon 顺便说一句,非常感谢你试图帮助我。我最近开始使用 excel 并且完全迷失在这一切中。

标签: excel excel-formula vlookup


【解决方案1】:

好的,根据您上次的回复,我将提供一个潜在的解决方案,其中包含一些注意事项和假设。

注意事项

如果数据来自多个源工作簿,则 VBA 解决方案可能是最佳选择。但是,如果这种情况很少发生,它不会为您节省太多时间来执行 VBA 解决方案。另外,如果您不熟悉 VBA,我不建议您简单地粘贴您上网的其他人的代码 - 因为它可能是恶意的,或者如果代码出现问题,它可能导致您无法实际完成您的工作是你无法修复的。

假设

-我将假设每个供应商都包含在同一个工作簿中,在其自己的选项卡上。 -我还假设数据将有些一致,正如您在上面问题的 cmets 中所指出的那样。 - 现在,我假设您只需要每个供应商的几个字段,并且这些字段在供应商之间总是相同的。这不一定是使用此方法所必需的,但它会稍微简化一些事情并让您开始。现在,假设您只关心供应商名称、货物类型、数量和预计发货日期。

建议的工作流程

对于像这样在 Excel 中创建“迷你数据库”的人,我的一般建议是为他们的数据转储、工作公式表和用于显示/打印目的的摘要选项卡保留单独的选项卡。仅将您的编码解决方案保持在您自己理解的水平,并且不要扔掉原始的原始资料。理想情况下,如果有人正在审查/审核您的工作,他们应该能够简单地复制和粘贴随机数据样本,并立即查看它是否获得了正确的数量。

因此,我的建议是为每个供应商提供一个摘要选项卡、一个数据转储选项卡(也称为“登陆页面”),以及为每个供应商提供一个中间公式选项卡。

数据转储选项卡应包含来自供应商的数据,无需调整。格式化您的数据转储选项卡以匹配您的原始数据(而不是格式化您的原始数据以匹配您的数据转储选项卡)意味着每次更新它时,都需要最少的干预。因此,这比完全“自动化”还差 1 步。

每个供应商的中间公式标签应与其他中间公式标签的格式相同。这将允许在主摘要选项卡上更轻松地提取。中间公式选项卡的目的是让您有机会查看该供应商的 excel 数据转储,并确定提取您关心的字段以供审查的最佳方式。

摘要选项卡将只是所有供应商选项卡的列表,显示您关心的每个字段的网格。

完成步骤

使用您在问题中的“提供者模板”,将该选项卡转储到“提供者 A 数据转储”选项卡中。

在“提供者 A 公式”选项卡中,我们将首先键入提供者的名称作为工作表名称。在单元格 A1 中,键入“索引”。在单元格 B1 中,键入“参考编号”。在单元格 C1 中,键入“货物类型”。在单元格 D1 中,键入“数量”。在单元格 E1 中输入“发货日期”。

A 列将包含一个索引,该索引等于从该供应商发货的订单数。 A2 中的公式将是“=1”,A3 中的公式,并复制下来,将是:

=if(row()<=count('Provider A Data'!M:M),row()-1,"")

这将计算您所在的行,如果您所在的行少于原始数据选项卡的数量字段中带有数字的总行数,它将显示该行号(-1 表示标题)。否则会显示空白。

对于其余部分,如果您的数据确实一致,那么您只需将第 2 行中的第一个单元格设置为等于另一个选项卡中的特定单元格。即:B2,显示参考ID,可以很简单:

='Provider A Data'!P2

然后只需将其向下拖动,它就会在您拖动时将其拾起。您将使用 A 列中的索引键来确保您已经拖得足够远。

有公式解决方案(如 vlookup)可用于在原始数据选项卡中查找特定参考 ID 并从另一列中提取确切的行,但如果您只是保留内容,则不需要使用这些解决方案与它们在数据转储选项卡中显示的行顺序相同。

然后,对于您的摘要选项卡,只需创建一些列来从每个供应商那里提取金额。首次设置工作簿后,您只需在公式选项卡中向下拖动行即可进行更新。如果您对如何实现其中任何一项有进一步的具体问题,请在具体问题中提出,并说明您尝试过的操作以及失败的部分。

我希望这可以帮助您入门。

【讨论】:

  • 所以我创建了一个单独的工作簿只是为了练习,我只负责一个数据提供者,我们称他为 Alphaship。我有 3 张表,一张名为 Alphashipdatadump,第二张 Alphaship,第三张 Alphashipresume。公式选项卡(名为 Alphaship)有 A1:Index A2:"=A1" 和 A3:=IF(ROW()
  • @CzukDee 我不确定您的新问题是什么 - 请编辑您的原始问题,详细说明您尝试过的方法以及问题所在。
  • 我放在 A3 中的公式(并复制下来)。我应该把什么作为提供者 A 数据? Alphaship 还是 Alphashipdatadump?一旦程序问我要更新哪张表,我应该选择什么?数据转储表或 Alphaship(公式表)。最后一个问题是我是否需要包含所有原始数据的第四张表,或者这应该只是数据转储表?我相信你在这个过程中是绝对正确的,这种方法会比 Vlookup 好得多。感谢您让我朝着正确的方向前进。
  • 每个供应商只需要 2 张表:原始数据转储和公式表。然后,您需要为所有供应商组合的 1 个汇总表。您应该从原始供应商工作簿中复制数据转储,并将其粘贴到您的数据转储表中。它要求您选择工作簿的原因是因为您指的是一个单独的文件 - 您不需要这样做。这有意义吗?
猜你喜欢
  • 2019-02-24
  • 2020-02-29
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 2022-07-31
  • 2019-02-24
  • 2021-12-09
  • 1970-01-01
相关资源
最近更新 更多