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 будет содержать значение VERSION, а затем добавить либо 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")) 

Колонка С OSTYPE, колонка D является SHORTPATH и столбец Е 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

Спасибо, Ваше решение работает как хорошо –

 Смежные вопросы

  • Нет связанных вопросов^_^