Excel 在线练习题 / 查找与引用

按开关指定的价目表取价(IF + 查找)

困难 查找与引用
题目说明
提示 0/4
官方解法 2
–
测试用例
1
2
3
重置
提交
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
正在加载交互式电子表格...
正在准备单元格数据与公式求解引擎
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。

题目

题目说明

两份价目表并排:旧价在 A2:B5、新价在 D2:E5,由 H2 这个开关决定用哪一份——它写着 "New" 或 "Old",SKU 在 H1。把价格填进 Price 单元格 H3。

同一公式要同时读 SKU 与开关;不能用辅助列放 IF,也不许把价格搬来搬去。

题目数据

用表格查看整份数据(可选中、可复制)
这道题的数据表
ABDEGH
1SKUOld priceSKUNew priceSKUSKU-103
2SKU-10149SKU-10152Price listNew
3SKU-10219.5SKU-10221Price
4SKU-10322.5SKU-10324.99
5SKU-10489SKU-10495

知识点

IF 选的是「一次查找」,不只是选值:每个分支都是一条完整的 VLOOKUP,各自打一张表。因为两张表是独立区域,调价时不需要重新排序。INDEX + MATCH 是同一思路,只是位置是显式找出来的,两张表列顺序不同时更好读。

解题思路

答案写在 H3。提交时我们会换 3 组输入重跑你的公式,写死数字一定过不了 —— 公式必须跟着单元格走。

  1. 目标单元格是 H3
  2. H2 的开关决定用哪张表
  3. IF 的每个分支都是一整条 VLOOKUP
  4. 公式形状:=IF(?, VLOOKUP(?, ?, ?, ?), VLOOKUP(?, ?, ?, ?))

官方解法

展开 2 种解法(建议先自己试一次)

解法 1:IF 在两条 VLOOKUP 之间选

=IF($H$2 = "New", VLOOKUP($H$1, $D$2:$E$5, 2, FALSE), VLOOKUP($H$1, $A$2:$B$5, 2, FALSE))

H2 是 New 时从新价表取得 24.99;改成 Old,同一格就变成 22.50。H1、H2 用 $ 锁住,公式复制时两个引用都不会跑掉。

解法 2:IF 在两组 INDEX MATCH 之间选

=IF($H$2 = "New", INDEX($E$2:$E$5, MATCH($H$1, $D$2:$D$5, 0)), INDEX($B$2:$B$5, MATCH($H$1, $A$2:$A$5, 0)))

同样的开关,但返回列是直接指明而不是数列号。两张表列顺序不同时特别好用。

函数指南

相关 Excel 练习

常见问题

怎么从两张表其中之一取值?

把整条查找放进每个分支:=IF(开关="New", VLOOKUP(键, 新表, 2, 0), VLOOKUP(键, 旧表, 2, 0))。

为什么不把两张表并成一张?

多数情况下应该并。只有在两张表结构不同,或旧表必须冻结供历史报表使用时,才保持分开。