在 Excel 工作簿之间自动复制和组织数据

在 Excel 工作簿之间自动复制和组织数据

我有一个基本的表格布局,里面有很多列,每列的标题都是一个特定的字母代码(代码并不重要,重要的是列标题是什么)。在单独的工作簿中,用户输入一些数据,这些数据本质上是一个数字,并附带一个代码,该代码对应于另一个工作簿中的一个列标题。

有没有办法可以自动获取输入的数字并将其复制到相应列的下一个可用单元格中。(例如,如果用户在单元格 A1 中输入数字 5,并在单元格 A2 中输入代码 ABCD,则 5 将被输入到 ABCD 列的第一个空单元格中)

答案1

当然。

这个过程看上去漫长而复杂。其实不然,每次都需要花费几秒钟。解释起来有点长。就像人们说一张图片胜过千言万语一样。

在您想要输入数据的行中,在每个单元格中输入如下所示的公式。只需使用正确的地址即可读取另一个电子表格。我将简单地假设输入数据在单元格 A1(值)和 B1(代码)中,并且您的表格在它们右侧的列中,可能从 D 列开始,并且每列中第一行的单元格都有其标题。您将选择要将公式粘贴到哪一行以及将其粘贴到哪些列中。

=IF($B$1=D$1,$A$1,"")

就这样。将其写入下一行,即它将进入的任何列,将“D1”引用调整为该列的第一行,按 Enter,然后复制单元格并粘贴到该行用于保存表格数据的所有列中。因此,如果它使用 D 到 AM 列,请将其写入 Dx:AMx 范围内的任何单元格,然后将其粘贴到所有单元格中。

只有一列的标题会与 B1 中的内容匹配。关联的值 (A1) 会写入该行中该列的单元格中。所有其他列的单元格中都会写入空白 ( "")。

现在,用户的电子表格中可能不止一行感兴趣的数据,可能有数百或数千行。您首先需要将 A1 和 B1 单元格引用替换为用户电子表格中第一行数据的位置。也许是 Sheet1 上的 A6 和 B6。甚至可能是 A6 和 B2。没关系:您只需使用第一对的地址即可。在调整这些地址后,使用公式填写主电子表格中的下一个空行,然后复制该行并粘贴用户电子表格中有多少行数据。因此,如果他输入了六对,则粘贴六行。如果他输入了 347 对,则粘贴以填充 347 行。

粘贴时,请务必包含您填写的第一行。这样,粘贴完成后,您输入公式的所有行仍会突出显示,这样您就可以顺利执行下一步而不会出错。

将整个公式集复制到剪贴板。使用Paste | Special | Values公式值替换公式。这样,它们就是主电子表格中的永久条目。如果用户或您的做法是从用户的电子表格中删除传输的数据,这样您就不会收集两次或三十次,那么您不会看到数据从主电子表格中消失!

这就是基本用法。

您可以根据需要为其添加复杂性。例如,快速IF()测试以检查一组单元格是否已填写,这样您就不必知道用户添加了多少对。只需知道有多少,然后粘贴额外的行,而不是试图确保您获得所有数据而不计算行数。您也可以让它变得更加复杂。您可以添加错误检查,可能是代码错误(输入错误,因此输入的代码根本不匹配任何列标题,可能是一个例子)或输入值中的错误或可能的错误(可能是医疗程序费用,有人输入了“1234.561234.56”,这种错误,或者应该是数千而输入了数百万,或者金额是数百万,但输入为数千,而按照惯例假设为“,000”……可能有很多事情)。

当然,有一天你会写一些 VBA 来帮你完成这些步骤。毕竟,“巧妙”和“精明”肯定可以用来形容“我根本不用做任何事,只需点击一个按钮。”

但要做到基本呢?只需上述公式和程序即可。

相关内容