Excel несколько операторов IF или макросов, чтобы решить эту проблему? - PullRequest
2 голосов
/ 19 октября 2019

Я пытаюсь сделать несколько утверждений IF в Excel, чтобы помочь моему клубу преобразовать регистрации событий в шаблон, который можно импортировать в программу оценки.

Экспорт регистрации помещает 3 атрибута в одну ячейку. Мне нужен способ разделить эти 3 атрибута на 3 ячейки разницы для шаблона импорта. Каждый атрибут имеет 4-5 возможностей. Я пытался IF(ISNUMBER(SEARCH, что позволило мне определить присутствующий 1 атрибут.

=IF(ISNUMBER(SEARCH("Production",G12,1)),"Production","")`

Желаемый результат в красном тексте:

https://imgur.com/a/trc1fmU

Ответы [ 3 ]

2 голосов
/ 20 октября 2019

Пожалуйста, обратитесь к приведенной выше таблице макетов Рона Роузфилда.

Вот еще одна формула FILTERXML, но в более короткой версии.

В C6, формула скопирована по горизонтали и влево:

=IFERROR(FILTERXML("<a "&SUBSTITUTE(SUBSTITUTE($A6,":","='"),",","' ")&"'/>","a/@"&C$5),"")
2 голосов
/ 19 октября 2019

Добро пожаловать на SO. Может быть, это поможет:

=IF(ISNUMBER(FIND(B$2,$A3)),TRIM(LEFT((SUBSTITUTE(MID($A3,FIND(":",$A3,FIND(B$2,$A3))+2,255),",",REPT(" ",255))),255)),"")

Результат:

enter image description here

1 голос
/ 19 октября 2019

Учитывая ваши данные, вот один из способов справиться с этим, если у вас есть Excel 2013+ с функцией FILTERXML.

  • Создайте XML-код, разделяющий запятую и двоеточие.
  • Этот XML будет иметь узлы, равные каждой записи в ваших исходных данных.
  • Значением любого конкретного атрибута будет значение following-sibling
  • xPathзатем извлеките соответствующее значение атрибута.

C6: =IFERROR(FILTERXML("<t><s>" & SUBSTITUTE(SUBSTITUTE($A6,":",","),",","</s><s>") & "</s></t>","//s[contains(.,'"&C$5&"')]/following-sibling::*[1]"),"")

Заполните по мере необходимости. Другие атрибуты могут быть добавлены в строку заголовка.

enter image description here

...