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

按 SKU 与区域查价(还带着扫描脏值)

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

题目

题目说明

同一个 SKU 在不同区域有不同价格,所以只有一个键不够。价目表在 A2:C7,扫描进来的 SKU 在 F1(带空格),区域在 F2。把价格填进 Price 单元格 F3。

两个条件,而且 SKU 必须在公式里清理——扫描器写出来的是小写加空格。

题目数据

用表格查看整份数据(可选中、可复制)
这道题的数据表
ABCEF
1SKURegionPriceSKU scanned sku-102
2SKU-101US49RegionEU
3SKU-102EU19.5Price
4SKU-102US21
5SKU-103EU24.99
6SKU-101EU52
7SKU-103US25.5

知识点

当答案是数字、而且每个条件都是等于时,SUMIFS 可以当查找用:它返回同时满足所有条件的行的总和,也就是唯一那笔价格。先用 TRIM(UPPER(F1)) 清理键。INDEX + MATCH 搭配相乘条件是数组写法,答案为文本时就得用它。

解题思路

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

  1. 目标单元格是 F3
  2. 先清理键:TRIM(UPPER(F1))
  3. SUMIFS 带两组区域/条件就等于查找
  4. 公式形状:=SUMIFS(?, ?, ?, ?, ?)

官方解法

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

解法 1:SUMIFS 当双条件查找

=SUMIFS($C$2:$C$7, $A$2:$A$7, TRIM(UPPER(F1)), $B$2:$B$7, F2)

TRIM(UPPER(" sku-102 ")) 得到 "SKU-102";同时符合它和 EU 的只有一行,价格 19.50。查不到时返回 0,所以当 0 也是合法价格时要另外处理。

解法 2:INDEX + MATCH 走两个条件

=INDEX($C$2:$C$7, MATCH(1, ($A$2:$A$7=TRIM(UPPER(F1)))*($B$2:$B$7=F2), 0))

MATCH(1, ...) 找出相乘后同时为 1 的第一行。答案相同,而且它不像 SUMIFS 只能取数字,取文本也行;找不到时返回 #N/A 而不是安静的 0。

函数指南

相关 Excel 练习

常见问题

要查的值同时取决于两列,怎么写?

答案是数字时用 =SUMIFS(值, 列1, 键1, 列2, 键2);是文本时用 =INDEX(值, MATCH(1, (列1=键1)*(列2=键2), 0))。

为什么 SUMIFS 返回 0 而不是错误?

没有匹配的行时它汇总了空集合,就是 0。若 0 可能是真实价格,用 =IF(COUNTIFS(...)=0, "not found", SUMIFS(...)) 包起来。