2016-10-24 24 views
1

我試圖找出如何寫一個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

將它永遠是一個字母?剛剛用'RIGHT(A13,LEN(A13)-1)取代'A13'' –

+0

並非總是如此,一個單元格可能看起來像(AB24或ABC24)。我只想看一下數值,然後寫出一個公式,將其結合到IF語句中,查看數值是偶數還是奇數。 – tellap

+0

所以數字總是在字符串的最後? –

回答

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) 
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函數,見下面的截圖)。

Result

有關如何做到這一點(用在公式中的VBA函數)更多信息,請看看這裏: https://support.office.com/en-us/article/Create-Custom-Functions-in-Excel-2007-2f06c10b-3622-40d6-a1b2-b6748ae8231f

如果您需要爲內部位小數昏迷你數字,你必須修改該函數中的if語句來接受逗號。

編輯:我已經提高到接受小數(用逗號)的功能,也是我創建了一個更復雜的exampel爲您展示如何在我的截圖使用的功能,結果(在B列)以及如何在IF中使用它。

1

要測試一個數字的均勻性,僅對該數字的最後一位進行測試就足夠了。

因此,如果顯示的數字僅出現在字符串的結尾,則:

=ISEVEN(RIGHT(A1))

問候

+0

我不認爲他需要檢查均勻度。他希望使用將數字四捨五入到偶數的偶數函數。 – Blenikos

+0

你確定嗎?最初的聲明說:「如果(列A中的值是偶數,那就這樣做)......」。再看看OP的公式如何在這裏實際使用EVEN功能。 –

+0

說實話,這個問題讓我感到困惑的是:即使(A13)= A13。它沒有任何意義。 A13是一個細胞?一個字符串?你的想法是正確的。但是在對問題的評論中,他提出了另外一個問題。我想我們永遠不會知道!我不認爲OP是一個常規SO用戶 – Blenikos