带有错误处理的嵌套公式
Nested formulas with error handling
我有数据,想用公式判断安装的版本是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
将包含 VERSION 值,然后为 32 位安装附加 x86
或为 64 位安装附加 x64
。
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 来处理该错误?
假设如果 SHORTPATH 包含“(x86)”或 OSTYPE 包含 32 位,则您希望 E 列中的结果与“x86”连接,否则您希望它与“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"))
较短的版本:
=E2&" "&IF(AND(ISERROR(SEARCH("x86";D2));NOT(ISERROR(SEARCH("64-bit";C2))));"x64";"x86")
我有数据,想用公式判断安装的版本是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
将包含 VERSION 值,然后为 32 位安装附加 x86
或为 64 位安装附加 x64
。
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 来处理该错误?
假设如果 SHORTPATH 包含“(x86)”或 OSTYPE 包含 32 位,则您希望 E 列中的结果与“x86”连接,否则您希望它与“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"))
较短的版本:
=E2&" "&IF(AND(ISERROR(SEARCH("x86";D2));NOT(ISERROR(SEARCH("64-bit";C2))));"x64";"x86")