为奇数编写IF语句

我想弄清楚如何编写这样的IF语句

IF (value in column A is ODD, then do this) IF (value in column A is EVEN, then do this) 

使用单元格中包含字母和数字的单元格(即单元格在列中具有以下格式:A1,A2,A3等)。 这是我目前的公式:

 =IF(EVEN(A13)=A13, I13, L13), 

但是,我不能以某种方式操纵它,使它忽略单元格中的字母,只是看数字。 任何build议,将不胜感激!

这里有一个数组公式可以工作,但我认为有一个更简单的方法。 你需要按ctrl + shft + enter

 =IF(ISEVEN(VALUE(MID(A1,MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},A1),"")), LEN(A1)-MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},A1),""))+1))),I1,L1) 

这是非数组版本。 只需按下enter

 =IF(ISEVEN(VALUE(MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1& {0;1;2;3;4;5;6;7;8;9})),LEN(A1)-MIN(FIND({0;1;2;3;4;5;6;7;8;9}, A1&{0;1;2;3;4;5;6;7;8;9}))+1))),I1,L1) 

要testing一个数字的均匀性,仅对该数字的最后一位进行testing就足够了。

因此,如果数字只出现在string的末尾,那么:

=ISEVEN(RIGHT(A1))

问候

这是一个vba函数,我用它从string中提取数字:

 Public Function numer(val As Variant) As Double Dim collector As String Dim i As Long For i = 1 To Len(val) If IsNumeric(Mid(val, i, 1)) Or Mid(val, i, 1) = "," Then: _ collector = collector + Mid(val, i, 1) Next i numer = CDbl(collector) 

结束function

你可以添加一个新的模块,然后在你的公式中使用它(像一个普通的Excel函数,见下面的截图)。

结果

有关如何执行此操作的更多信息(在公式中使用vba函数),请查看: https : //support.office.com/en-us/article/Create-Custom-Functions-in-Excel-2007 -2f06c10b-3622-40d6-A1B2-b6748ae8231f

如果你的数字里面的小数位需要昏迷,你必须修改一下if语句来接受逗号。

编辑:我已经改进了接受十进制数的函数(用逗号),我也创build了一个更复杂的exampel,显示如何使用该函数的结果(在我的屏幕截图B列),以及如何使用它里面的公式与IF。