一个函数或VBA代码来确定数字中的最后一位数字

在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代码的build议表示赞赏。

紧跟您的问题陈述:在B1您可以input公式:

 =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 (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以外的所有剩余部分, MOD内部的-1和外部+1相互抵消,但是对于5的倍数(余数0), MOD内部的-1将数字转换为1,其余为4,其中4 + 1 = 5最后的答案。