在Excel 2016中,我有多行包含列A中列出的不超过3个字符的数字。我正在尝试根据A列中每行中最右边的字符分配一个组号。一旦确定了数字,结果放在相应行的B列中。
示例:
If rightmost character of the number is: a 1 or 6 in cell A1, then in column B1 it's given a 1.
If A1 is a 2 or 7 then B1 is 2.
If A1 is a 3 or 8 then B1 is 3.
If A1 is a 4 or 9 then B1 is 4.
If A1 is a 0 or 5 then B1 is 5.
有关如何使用函数或VBA代码执行的任何建议都表示赞赏。
答案 0 :(得分:0)
完全按照您的问题陈述:在B1
中,您可以输入公式:
=IF(MOD(MOD(A1,10),5)=0,5,MOD(MOD(A1,10),5))
根据需要将其复制下来。
部分MOD(A1,10)
拉出最后一位数字。你似乎想要这个mod 5的剩余部分 - 因此MOD
中的外部(MOD(MOD(A1,10),5)
。但是 - 如果mod为0,你想将其报告为5 - 因此整体IF
然而 - 更快捷的方法就是:
=IF(MOD(A1,5)=0,5,MOD(A1,5))
因为从字面上拉出第一个数字是多余的,因为5是10的除数。
最后,@ chrisneilsen给出了一个更优雅的公式:
=MOD(A1-1,5)+1
对于0以外的所有余数,-1
内的MOD
和+1
外部相互抵消,但是对于5的倍数(余数为0),-1
MOD
内部将数字转换为1,余数为4,最终答案为4 + 1 = 5。