Excel中基于XP值非精确匹配获取等级相关数据的公式求助
Excel XP等级追踪公式解决方案
前提说明
- Sheet1:A列存
Level Name,B列存XP Required(首行为表头,数据从A2、B2开始) - Sheet3:C列是用户每日输入的递增End XP,当前XP已用公式
=MAX(Sheet3!C2:C)获取(假设该结果存于Sheet2的A1单元格,后续公式直接引用此单元格)
具体公式(以Sheet2为例)
1. 当前等级(示例放在B1单元格)
兼容所有Excel版本公式
=LOOKUP(2,1/(Sheet1!$B$2:$B$100<=A1),Sheet1!$A$2:$A$100)
原理:筛选出所有小于等于当前XP的等级所需XP,取最后一个匹配的等级名称。
Excel 365/2021简化版公式
=XLOOKUP(A1,Sheet1!$B$2:$B$100,Sheet1!$A$2:$A$100,"",-1)
参数-1指定查找小于等于当前值的最大匹配项。
2. 升级至下一等级所需XP(示例放在C1单元格)
兼容所有Excel版本公式
=MIN(IF(Sheet1!$B$2:$B$100>A1,Sheet1!$B$2:$B$100))-A1
注意:旧版Excel需按Ctrl+Shift+Enter作为数组公式输入,365版本直接回车即可。
Excel 365/2021简化版公式
=XLOOKUP(A1,Sheet1!$B$2:$B$100,Sheet1!$B$2:$B$100,"",1)-A1
参数1指定查找大于当前值的最小匹配项,直接得到下一等级所需XP,减去当前XP即为升级差值。
3. 下一等级名称(示例放在D1单元格)
兼容所有Excel版本公式
=INDEX(Sheet1!$A$2:$A$100,MATCH(MIN(IF(Sheet1!$B$2:$B$100>A1,Sheet1!$B$2:$B$100)),Sheet1!$B$2:$B$100,0))
注意:旧版Excel需按Ctrl+Shift+Enter作为数组公式输入,365版本直接回车即可。
Excel 365/2021简化版公式
=XLOOKUP(A1,Sheet1!$B$2:$B$100,Sheet1!$A$2:$A$100,"",1)
示例验证
按你提供的测试数据:
- Sheet1数据:A2=Wood、B2=50;A3=Bronze、B3=100;A4=Silver、B4=1000
- 当前XP=500(A1)
- 当前等级返回
Bronze,升级所需XP返回500,下一等级名称返回Silver,完全符合预期。
内容的提问来源于stack exchange,提问作者Ryan Morrison
相关产品推荐
相关产品推荐

