如何在Excel中使用VLOOKUP实现跨表批量更新数量
用VLOOKUP结合MATCH实现Table2的Quantity更新
可以通过VLOOKUP+MATCH的组合公式实现需求,因为Table1是宽表结构,需要同时匹配产品和日期两个维度提取对应数量,具体操作如下:
原始数据
Table1(宽表:产品行+日期列存储数量)
| 产品(Table 1) | 01-02-2023 | 01-03-2023 | 01-04-2023 | 01-05-2023 |
|---|---|---|---|---|
| AB-01-M1 | 0 | 20 | 30 | 40 |
| AB-02-M2 | 50 | 10 | 20 | 0 |
Table2(长表:需更新Quantity列)
| 产品(Table 2) | 日期 | Quantity |
|---|---|---|
| AB-01-M1 | 01-02-2023 | 2 |
| AB-01-M1 | 01-03-2023 | 2 |
| AB-01-M1 | 01-04-2023 | 2 |
| AB-01-M1 | 01-05-2023 | 2 |
| AB-02-M2 | 01-02-2023 | 2 |
| AB-02-M2 | 01-03-2023 | 2 |
| AB-02-M2 | 01-04-2023 | 2 |
| AB-02-M2 | 01-05-2023 | 2 |
预期结果
| 产品 | 日期 | Quantity |
|---|---|---|
| AB-01-M1 | 01-02-2023 | 0 |
| AB-01-M1 | 01-03-2023 | 20 |
| AB-01-M1 | 01-04-2023 | 30 |
| AB-01-M1 | 01-05-2023 | 40 |
| AB-02-M2 | 01-02-2023 | 50 |
| AB-02-M2 | 01-03-2023 | 10 |
| AB-02-M2 | 01-04-2023 | 20 |
| AB-02-M2 | 01-05-2023 | 0 |
具体操作步骤
假设Table1的数据区域为A1:E3(A列是产品,B-E列为日期及对应数量),Table2的产品列是G列,日期列是H列,需更新的Quantity列是I列:
- 选中Table2中第一个待更新的Quantity单元格(如I2),输入公式:
=VLOOKUP(G2, $A$1:$E$3, MATCH(H2, $A$1:$E$1, 0), FALSE) - 按回车键得到第一个结果,鼠标移到单元格右下角,待出现十字填充柄后,下拉填充至所有需要更新的行即可。
公式说明
VLOOKUP(G2, $A$1:$E$3, ..., FALSE):以Table2当前行的产品(G2)为查找值,在Table1的A1:E3区域内精确匹配对应产品行。MATCH(H2, $A$1:$E$1, 0):定位Table2当前行的日期(H2)在Table1表头(A1:E1)中的列号,作为VLOOKUP的第三参数,指定返回该列的数值。- 公式中的
$是绝对引用符号,确保下拉填充时Table1的数据源区域不会随单元格偏移而变动。
注意事项
- 确保Table1表头的日期与Table2的日期格式完全一致,否则MATCH函数会匹配失败。若格式不同,可选中日期列,通过【开始】选项卡的【数字格式】统一设置为相同格式(如短日期)。
- 若出现
#N/A错误,检查对应行的产品名称或日期是否在Table1中存在,或者格式是否匹配。
内容的提问来源于stack exchange,提问作者Sanjana
相关产品推荐
相关产品推荐

