我想弄清楚如何写一个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),
但是,我无法以某种方式操纵它,以至于它省略了单元格中的字母,只是查看数字。任何建议将不胜感激!
答案 0 :(得分:1)
要测试数字的均匀度,只需对该数字的最后一位数字进行测试就足够了。
因此,如果数字只出现在字符串的末尾,那么:
=ISEVEN(RIGHT(A1))
此致
答案 1 :(得分:0)
这是一个可以工作的数组公式,但我认为有一种更简单的方法。您需要按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)
答案 2 :(得分:0)
这是一个用于从字符串中提取数字的vba函数:
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)
结束功能
您可以在新模块上添加它,然后根据需要在公式中使用它(如正常的Excel功能,请参见屏幕截图中的下方)。
有关如何执行此操作的更多信息(在公式中使用vba函数),请查看此处: https://support.office.com/en-us/article/Create-Custom-Functions-in-Excel-2007-2f06c10b-3622-40d6-a1b2-b6748ae8231f
如果您需要在数字中包含小数位数的昏迷,则必须在该函数中更改一点if语句以接受逗号。
编辑:我已经改进了接受十进制数字的函数(使用逗号),并且我已经为您创建了一个更复杂的示例,其中显示了如何将该函数与结果一起使用(在列中)我的屏幕截图中的B)以及如何在带有IF的公式中使用它。