我正在使用If语句为另一个单元格的字符串分配整数。这似乎可行,但是如果我引用这些列,则得到的是NaN值。这是我下面的公式。我尝试在输出值周围添加INT(),但这似乎破坏了一切。我想念什么吗?
IF(FIND('1',{Functional response}),-4,
IF(FIND('2',{Functional response}),-2,
IF(FIND('3',{Functional response}),0,
IF(FIND('4',{Functional response}),2,
IF(FIND('5',{Functional response}),4,"")))))
答案 0 :(得分:1)
假定功能响应只能将1到5的数字存储为字符串,那么excel中的一个简单选项就是先将字符串转换为数字,然后使用select函数分配一个值。这是可行的,因为数字是连续整数。假设单元格K2具有功能响应的值,则您的公式可能是:
=CHOOSE(--K2,-4,-2,0,2,4)
=CHOOSE(K2+0,-4,-2,0,2,4)
=CHOOSE(K2-0,-4,-2,0,2,4)
=CHOOSE(K2*1,-4,-2,0,2,4)
=CHOOSE(K2/1,-4,-2,0,2,4)
通过数学运算基本发送纯数字的字符串已将excel转换为数字。通过不更改其值的数学运算将其发送,您就可以将字符串作为数字获得。
CHOOSE
就像一个顺序的IF
函数,为其提供一个整数作为第一个参数,然后它将从后续列表中返回与该数字匹配的值。如果您提供的数量大于选项的数量,则会出现错误。
或者,您可以使用以下公式对在K2中存储为字符串的数字进行直接数学转换:
=(K2-3)*2
最后,您可以构建一个表并使用VLOOKUP
或INDEX/MATCH
。
注意:如果B2:B6是作为字符串而不是数字存储的,则需要使用K2而不是--K2。