2013-12-12 2 views
1

У меня есть вектор, который имеет в нем разные значения. В соседнем с ним векторе я хотел бы использовать команды multiple = IF (FIND (IF (FIND(), IF (FIND(), .....Несколько сообщений IF Excel 2007

Вот пример моих данных и того, как я хотел бы клетки рядом с ним, чтобы выйти:

COMPLAINT   | DESCRIPTION <-- How I would like it to come out 
CHF    | CHF 
COPD (Nos)   | COPD 
Chest, Pain, Acute | CHEST PAIN 
CP     | CHEST PAIN 
...    | ... 

То, что я написал для этого выглядит следующим образом, который не работает:

=IF(FIND("CHF",E3,1),"CHF",IF(FIND("COPD",E3,1),"CHF",0)) 

мне нужно расширить выше, чтобы принять по крайней мере, 5 различных аргументов. Я пробовал использовать этот пост here, но я не подхожу к нему правильно.

EDIT

Я ожидаю, что функция что-то вроде этого работы:

IF FIND "CHF" 
    THEN "CHF" 
ELSE IF FIND "COPD" 
    THEN "COPD" 
ELSE IF FIND "CP" 
    THEN "CHEST PAIN" 
... 

Спасибо,

+0

Каким образом это не работает? Как результат отличается от того, что вы ожидали? –

+0

Мне нужно добавить то, что я ожидаю к моему вопросу. Извиняюсь, мне нужно, если «CHF» найден ТОЛЬКО «CHF», но если «COPD» найден ТОЛЬКО «COPD», но если «CP» увлекается THEN «CHEST PAIN ",...,и т.д. –

ответ

2

Я думаю, что это лучше, если у вас есть какие-то «словаря» смотреть значения.

Например, есть таблица со следующими где:

CHF   CHF 
COPD   COPD 
CP   CHEST PAIN 
Chest Pain CHEST PAIN 

Скажем, те находятся в диапазоне G2:H5 и CHF начинается в ячейке A2.

Первый шаг, чтобы попытаться матч CHF, COPD, CP и Chest Pain в камеру A2. Вы можете использовать SEARCH для этого (FIND эквивалентен, но чувствителен к регистру).

=SEARCH($G$2:$G$5,A2) 

Это дает вам ошибки и число, если есть совпадение. Для того, чтобы иметь дело с 3-й случай образца, вы можете сначала удалить запятые с SUBSTITUTE:

=SEARCH($G$2:$G$5,SUBSTITUTE(A2,",","")) 

Для CHF, вы получите

1,#VALUE!,#VALUE!,#VALUE! 

спользование IFERROR() может сделать результаты немного красивее. Вы можете получить индекс 1 того, чтобы получить CHF из второй таблицы таблицы поиска с помощью MATCH:

=MATCH(1,SEARCH($G$2:$G$5,SUBSTITUTE(A2,",","")),0) 

И использовать INDEX, чтобы вернуть значение ячейки из таблицы поиска ...

=INDEX($H$2:$H$5,MATCH(1,SEARCH($G$2:$G$5,SUBSTITUTE(A2,",","")),0)) 

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

Теперь из-за SEARCH (он принимает несколько значений вместо одного), эта формула является формулой массива.Таким образом, вместо нажатия Enter , вам придется держать Ctrl + Сдвиг, а затем нажмите Enter для того, чтобы работать должным образом.

+0

Большое спасибо за этот. Я сейчас ухожу, но попробую это утром, и если это сработает, я приму это как ответ. –

+0

@MCP_infiltrator Хорошо, все в порядке со мной. Я фактически забыл упомянуть, что это была формула массива, поэтому я добавил этот бит в конце. ^^; – Jerry

+0

получил это, спасибо большое! –

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