自动填充 Excel 中另一张表中的行

自动填充 Excel 中另一张表中的行

我有一本工作簿,用来跟踪我订购的产品。目前,它有两张表 - 一张是每个项目的库存清单,按行排列,每列包含所有详细信息(产品 ID、最小/最大数量、说明、价格等)。在第二张表上,我跟踪项目的订购时间以及采购订单号。目前,我从库存表中复制我要订购的商品的行,并将其与采购订单号、订购日期和数量一起粘贴到第二张表上。我将其保存为一个不断添加的列表,以便查看趋势和订单历史记录。有没有办法在第二张表上输入产品 ID,按回车键,然后让它用库存表中相同产品 ID 的信息填充行?由于有成千上万个产品 ID 及其信息,因此消除复制和粘贴将节省大量时间。

谢谢。

答案1

对于这种规模的集合,也许您应该考虑使用 Access 或其他数据库解决方案。不过,还是继续吧。

使用 Excel 中的 VLOOKUP 函数。例如:

Sheet1 有此布局

     |     A      |   B   |   C   |   D   |   E   |
1    | Product ID | Max Q | Min Q | Desc. | Price | 
2    |  ######### |   ### |    ## | xxxxx | 34.29 |
...
2359 |  ######### |   ### |    ## | xxxxx | 54.28 |

Sheet2 有此布局

     |     A     |     B     |    C    |     D     |     E      |   F   |   G   |
1    |Order date | Recv Date | Order Q | P.O. Num. | Product ID | Desc. | Price |
2    |           |           |         |           |            |       |       |

在 Sheet2 单元格 E2 中输入与 Sheet1 列 A 中的某个 ID 匹配的产品 ID。在 Sheet2 单元格 F2 中输入公式=VLOOKUP(E2,Sheet1!$A$2:$E$2359,4,TRUE),在 G2 中输入公式=VLOOKUP(A1,Sheet1!$A$1:$H$2359,5,TRUE)。范围引用是绝对的$,因此当公式向下复制到页面时它们不会改变,第三个参数是具有所需值的范围“内部”的列。例如,如果 Sheet1 从 H 列开始,则范围将更改为,Sheet1!$H$2:$L$2但 Desc. 的 4 和 Price 的 5 将不是更改。您可以使用命名范围来避免每次添加产品时都必须更新公式中的范围,请查看 Excel 的帮助。产品 ID 列需要根据您报告的数据集大小进行排序才能获得最佳效果,尽管 VLOOKUP 并不要求这样做,并且您必须将公式从第 2 行向下复制到您认为需要的位置(无论有多少千行)。如果工作表有名称,则将它们放在单引号内,例如=VLOOKUP(E2,'Inventory List'!$A$2:$E$2359,4,TRUE)。在公式中,第一个参数E2是要匹配的单元格,第二个参数Sheet1!$A$1:$H$2359是要查找的范围 - 搜索是仅有的完成于第一的列,第三个参数是数据要返回的范围的列,第四个参数TRUE强制精确匹配。

说真的,考虑将如此大的数据集迁移到数据库中。这意味着现在需要做更多工作,但从长远来看会好得多,包括能够更轻松地发现趋势,减少麻烦。

相关内容