2015-11-27 53 views
1

我有數據,並想用公式來確定安裝的版本是x86或x64:嵌套的公式,錯誤處理

OSTYPE           SHORTPATH          VERSION  VERSIOND 
Microsoft Windows 7 Enterprise Edition, 64-bit C:\PROGRAM FILES (X86)\JAVA\JRE1.8.0_45\BIN\ 8.0.45.14 8.0.45.14 x86 
Microsoft Windows 7 Enterprise Edition, 64-bit C:\PROGRAM FILES\JAVA\JRE1.8.0_66\BIN\   8.0.660.18 8.0.660.18 x64 
Microsoft Windows 7 Enterprise Edition, 32-bit C:\PROGRAM FILES\JAVA\JRE6\BIN\     6.0.510.9 6.0.510.9 x86 

這樣做的目的是VERSIOND將包含版本值然後追加要麼x86爲32位安裝或x64爲64位安裝。

If SHORTPATH contains "(x86)" then it's a 32bit install 
If SHORTPATH doesn't contain "(x86)" and OSTYPE contains "64-bit" then it's a 64bit install 
If SHORTPATH doesn't contain "(x86)" and OSTYPE contains "32-bit" then it's a 32bit install 

我差點就通過工作:

=IF(ISERROR(SEARCH("(x86)";D2));IF(SEARCH("64-bit";C2)>0;CONCATENATE(E2;" x64");CONCATENATE(E2;" x86"));CONCATENATE(E2;" x86")) 

列C是OSTYPE,列d是SHORTPATH和列E是VERSION

它的工作原理除非OSTYPE是32位的,這是因爲SEARCH("64-bit";C2)>0返回#VALUE!'

如何添加第二ISERROR用於處理錯誤的?

回答

0

一個較短的版本:

=E2&" "&IF(AND(ISERROR(SEARCH("x86";D2));NOT(ISERROR(SEARCH("64-bit";C2))));"x64";"x86") 
+1

感謝,偉大的工程,比我爲什麼曾試圖 –

+0

@MichaelG更簡單也許是因爲我很簡單的:) – pnuts

0

假設您希望E列中的結果與「x86」連接,如果任一SHORTPATH包含「(x86)」或OSTYPE包含32位,否則您希望它與「x64」連接,您可以使用OR描述當你想使用的「x86」甚至沒有明確搜索「64位」:

=IF(OR(NOT(ISERROR(SEARCH("(x86)",D2))),NOT(ISERROR(SEARCH("32-bit",C2)))),CONCATENATE(E2," x86"),CONCATENATE(E2," x64")) 

上面進行了測試,但你似乎可以用它代替,使用;一個區域設置,所以我想這將是:

=IF(OR(NOT(ISERROR(SEARCH("(x86)";D2)));NOT(ISERROR(SEARCH("32-bit";C2))));CONCATENATE(E2;" x86");CONCATENATE(E2;" x64")) 
+0

謝謝,您的解決方案作品,以及 –