2016-09-29 247 views
-1

我相信寫出來的條件會很長,而我在編寫這個長公式時不太好 我已經使用了6列,它們是D,E,M,N,O ,P
樣本數據:Excel在公式中添加更多條件

D3=123456(Changing variable as it can be 12345, 12345A,123456A) 
E3=1 
M3=31 
N3=_ 
O3=00 
P3=0 

的公式是基於該列d字段設計(變量的變化是在該字段)讓說 如果D3的長度= 6然後(電流式我完成)

=IF(LEN(D3)=6,CONCATENATE(M3,D3,N3,O3,E3),CONCATENATE(M3,D3,O3,E3)) 

如果假設D變量更改爲123456A(公式中的其他 表示爲不連接N3) ,則結果爲31123456_001,那麼結果將爲31123456A001。

我在列p中添加了,這樣我就可以使用它連接到我需要的格式。 有幾個條件,我需要添加, 這是
1.如果D3 = 12345,格式結果將是31_001(M3串聯,P3,D3,N3,O3,E3)
2.如果d = 12345A,格式結果將是31A001(串聯M3,P3,D3,O3,E3)
3.數據爲列D3場,12345 ,所述字母表可以在AZ。

這些是我在公式中要求的所有條件和結果的列表。

1. D3 = 123456 then the outcome will be 31123456_001 
2. D3 = 123456A then outcome will be 31123456A001 
3. D3 = 12345 then outcome will be 31_001 
4. D3 = 12345A then outcome will be 31A001 

附加信息:
這是因爲它可以是任意數字組合只是格式,最後一個字母的字母表可以AZ

D3 = 123456 
D3 = 123456A 
D3 = 12345 
D3 = 12345A 
+0

什麼是這些新的條件下的優先級?即它們屬於已有的配方還是屬於它的某個地方? –

+0

是的,他們必須添加到現有的公式 –

回答

1

我得到了我的答案,這是

=IF(AND(LEN(D3)>=6,ISNUMBER(RIGHT(D3,1)*1)),M3&D3&N3&O3&E3,IF(AND(LEN(D3)<6,ISNUMBER(RIGHT(D3,1)*1)),M3&P3&D3&N3&O3&E3,IF(AND(LEN(D3)=6,ISTEXT(RIGHT(D3,1))),M3&P3&D3&O3&E3,M3&D3&O3&E3))) 
2

,因爲我無法聽清所有的條件和結果,這裏是你的公式可能外觀的示例:

=IF(LEN(D3)=5,Outcome_1_Concatenation,IF(LEN(D3)=7,Outcome_2_Concatenation,IF(ISNUMBER(VALUE(RIGHT(D3,1))),Outcome_3_Concatenation,Outcome_4_Concatenation))) 

Outcome_1_Concatenation => replace with formula when LEN = 5 
Outcome_2_Concatenation => replace with formula when LEN = 7 
Outcome_3_Concatenation => replace with formula when LEN = 6 and all are numbers 
Outcome_4_Concatenation => replace with formula when LEN = 6 and last is character 

如果你給一個condition => outcome列表中的所有例子,我會很高興進一步幫助。

+0

只是再次修改我的問題,希望你明白。 –

+0

我明白了結果不是在公式中,所以你只需要添加如下所述的公式。 – zipa

+0

是的,它與我所需要的非常相似,但是我要如何寫這部分,LEN = 6,最後是字符,還是有重寫所有公式的建議? –

1

這是您的公式再加上添加條件1和2:

=IF(D3=12345,CONCATENATE(M3,P3,D3,N3,O3,E3),IF(D3="12345A",CONCATENATE(M3,P3,D3,O3,E3),IF(LEN(D3)=6,CONCATENATE(M3,D3,N3,O3,E3),CONCATENATE(M3,D3,O3,E3)))

如果你想要一個更廣義的版本,你可以檢查是否D3是一個數字,它的長度,如果D3結尾一個字母,並根據您的需要替換嵌套的ifs

+0

我現在正在嘗試你的配方,稍後會讓你知道。 –

+0

嘿大衛,如何檢查D3以字母結尾並同時檢查所有長度?你能給我一些指導嗎? –

2

我會看看創建一個查找表範圍與3個選項5,6,7的長度。

我將我的查找表範圍命名爲「長度」。

首先設置如下查找表:

5 |

=CONCATENATE(M$3,P$3,D$3,IF(ISNUMBER(VALUE(RIGHT(D3,1))),N3,""),O$3,E$3) 

6 |

=CONCATENATE(M$3,IF(ISNUMBER(VALUE(RIGHT(D$3,1))),"",P$3),D$3,IF(ISNUMBER(VALUE(RIGHT(D3,1))),N$3,""),O$3,E$3) 

7 |

=CONCATENATE(M$3,D$3,IF(ISNUMBER(VALUE(RIGHT(D$3,1))),N$3,""),O$3,E$3) 

對於任何D3值,則檢查是否是最後一個字符是字母,如果沒有它會插入N3,否則它留下來。

此外,對於任何6個字符的值,它檢查是否最後一個字符是一個字母,如果是的話,它會插入P3,否則它會離開它。

然後,你的輸出公式應該是:

=VLOOKUP(LEN(D3),Length,2,FALSE) 

這使得它的清潔和簡單。

enter image description here

+0

是的,我可以做到這一點,這確實是一個很好的建議,但我有一個數據庫,這會造成很多混亂。我更喜歡一種配方中的所有條件。 –