Формула Если ...

Программирование на Visual Basic for Applications
Vladimir13
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 19.09.2007 (Ср) 11:55

Формула Если ...

Сообщение Vladimir13 » 18.10.2007 (Чт) 10:19

как можно реализовать формулу:
A1 = текст из диапозона ячеек B1:B6, но только то значение из этого диапозона которое удолетворяет уловию Y, а в противоположном случае ячейка принимала значение Z.

Template
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 09.09.2006 (Сб) 18:03

Сообщение Template » 18.10.2007 (Чт) 10:27

А что за условие то ?

Vladimir13
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 19.09.2007 (Ср) 11:55

Сообщение Vladimir13 » 18.10.2007 (Чт) 10:37

Template
Y и X = текст

Template
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 09.09.2006 (Сб) 18:03

Сообщение Template » 18.10.2007 (Чт) 10:53

Так подойдёт ? Да, и первым идёт формула массива, т.е. после ввода этой формулы нужно нажать ctrl+shift+enter

=ЕСЛИ(ИЛИ(B1:B6="Y");"Y";"Z")
=ЕСЛИ(СЧЁТЕСЛИ(B1:B6;"Y")=0;"Z";"Y")
=ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ("Y";B1:B6;0));"Y";"Z")
=ЕСЛИ(ЕОШИБКА(ВПР("Y";B1:B6;1;0));"Z";"Y")

Vladimir13
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 19.09.2007 (Ср) 11:55

Сообщение Vladimir13 » 18.10.2007 (Чт) 11:51

Template
ДА! Списобо!

Vladimir13
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 19.09.2007 (Ср) 11:55

Сообщение Vladimir13 » 18.10.2007 (Чт) 14:11

Vladimir13
Есть еще один вопрос:
есть таблица:
A | B |
1 | Дом | 3 |
2 | Мел | 1 |
3 | Кот | 5 |

В любом месте диапозона ячеек D2:D10 пишу слово Дом например D3, a в ячейке Е3 автоматически проставляется 3, если введено слово Мел, то 1.

Template
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 09.09.2006 (Сб) 18:03

Сообщение Template » 18.10.2007 (Чт) 14:23

=ВПР(D3;$A$1:$B$3;2;0)
=ИНДЕКС($B$1:$B$3;ПОИСКПОЗ(D3;$A$1:$A$3;0))

Ежели данные ячейки D3 найдены не будут, то получите #Н/Д, так что можно извернуться :

=ЕСЛИ(ЕОШИБКА(ВПР(D3;$A$1:$B$3;2;0));0;ВПР(D3;$A$1:$B$3;2;0)) 'ЕНД

Vladimir13
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 19.09.2007 (Ср) 11:55

Сообщение Vladimir13 » 18.10.2007 (Чт) 16:09

Template

=ЕСЛИ(ЕОШИБКА(ВПР(D3;$A$1:$B$3;2;0));0;ВПР(D3;$A$1:$B$3;2;0)) 'ЕНД
-это не работает, регается на 'ЕНД

А первые две всё ОК! Если не затруднит посмотри почему не работает.

Template
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 09.09.2006 (Сб) 18:03

Сообщение Template » 18.10.2007 (Чт) 16:26

Vladimir13, Ну нельзя же так буквально принимать начертаное :wink: ведь имелось ввиду, что в таких случаях, функцию ЕОШИБКА можно заменить на ЕНД, то бишь

=ЕСЛИ(ЕОШИБКА(ВПР(D3;$A$1:$B$3;2;0));0;ВПР(D3;$A$1:$B$3;2;0))
=ЕСЛИ(ЕНД(ВПР(D3;$A$1:$B$3;2;0));0;ВПР(D3;$A$1:$B$3;2;0))

Vladimir13
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 19.09.2007 (Ср) 11:55

Сообщение Vladimir13 » 18.10.2007 (Чт) 18:15

Template
Всё ок!

p.s. что я ступил :?


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 73

    TopList