我有一张google工作表,我正在尝试计算练级和经验值。 A列具有级别, B列具有达到下一级别所需的exp。即要达到3级,你需要600 exp。
A B
1个200
2个400
3个600
...
99 19800
在第I2列中,我有一个exp的数量的整数(例如2000),在J2栏中我想弄清楚如果他们从0开始会有什么级别。
答案 0 :(得分:0)
使用辅助列(例如Z):将=sum(B$1:B1)
放入单元格Z1并向下拖动。这将计算每个级别所需的总和。在J2中,使用公式
=vlookup(I2, {B:B, Z:Z}, 2) + 1
在B列中查找I2,并返回小于或等于搜索键的最近匹配。它添加1来查找将达到的级别,因为您的表具有这种偏移量:N级的条目是关于达到级别N + 1。
您可能希望将0 0
置于表格顶部,以便正确处理200以下的金额。或者使用单独的if
条件对其进行处理。
在您的特定情况下,级别N所需的点数可以计算为
200*(1+2+3+...+N-1) = 200*(N-1)*N/2 = 100*(N-1/2)^2 - 25
因此,给定x个点数,我们可以直接用代数找到N:
N = floor(sqrt((x+25)/100)+1/2)
表示公式
=floor(sqrt((I2 + 25) / 100) + 1/2)
将在单元格J2中具有所需的效果,而无需额外的列和vlookup
。
但是,第二种方法仅适用于此特定点值。
答案 1 :(得分:0)
将其放在J列中,并根据需要向下ddrag。向下舍入(I2,-2)将I2向下舍入到最接近的100.索引匹配在列B中找到匹配并返回匹配行的列A中的值。
=index(A2:A100,match(ROUNDDOWN(I2,-2),B2:B100,0))