Printable Version of Topic
Click here to view this topic in its original format
Forums > Флейм > Маааленький вопросик по Excel


Posted by: Lord KiRon on 07-06-2010, 10:27
Для тех кто хорошо рубит.
Имеем таблицу, в таблице есть колонка C и колонка D.
Обе колонки содержат листы из двух элементов "Да" и "Нет".
В задаче требуется чтоб если в Cx стоит "Нет", то и в Dx стояло "Нет", а если в Cx стоит "Да" то пользователь мог бы выбрать значение Dx "вручную" , то есть из выпадающего списка "Да/Нет".

Именно со второй частью условия и проблема в
CODE
=IF(C1="Нет","Нет",???)
не катит ибо там где ??? я не хочу задавать жесткое условие.

Как сие сделать не используя VBA (если вообще возможно)?

То есть нужно что то похожее на Conditional Formating, только не он конечно ибо он только красит.

Posted by: shatterhand on 07-06-2010, 12:40
Верни пустую строку
=ЕСЛИ(C1="нет";"нет";"")
Не то?

Posted by: anatolyArts on 07-06-2010, 13:01
Очень просто:

1). Создай группу "Да, Нет" и назови её как-нибудь.
Например: А1='Да, А2='Нет
Отметь их разом и в поле "Name box" это возле строки с формулой, напиши название, скажем "listOne"

2). Задай проверку для поля Dx.
Для этого клацни по полю мышкой, в меню Data выбери Validation.
В графе "Allow" выбери "list"
В графе "source" введи формулу: =IF($C$x="Да",listOne,A2)
Замени $x на номер твоей строки.

Всё.
Для удобства группы можно создавать подальше от глаз пользователя.

Posted by: adjonja on 07-06-2010, 13:04
QUOTE (anatolyArts):
Для удобства группы можно создавать подальше от глаз пользователя.
или скрыть

Posted by: anatolyArts on 07-06-2010, 13:12
Кстати, вот нашел статью про как раз такую задачку: link (http://www.contextures.com/xlDataVal02.html

Posted by: Lord KiRon on 07-06-2010, 15:15
anatolyArts
Спасибо,
но есть одна проблемка - у меня 2007-й и как в нем создать named group- не имею не малейшего понятия.
У меня там собственно и так лист для значений , я его создал через validation просто перечислив значения.

upd: - нашел, они переименовали его в named range :)

Posted by: Lord KiRon on 07-06-2010, 17:28
Неа, как оказалось увы не катит, то есть код я написал, даже "оптимизировал":
CODE
=IF(Table2[[#This Row],[Заказ получен]]="Нет","Нет",{"Да","Нет"})
но...
как только ставишь значение в ручную - формула исчезает...

Posted by: FiL on 07-06-2010, 17:45
я не спец в экселях, но мне кажется надо подходить с другой стороны.
надо ВЕЗДЕ в колонке D проставить этот листбокс с двумя значениями, а потом если в С стоит "нет", то в D надо программно выставлять вариант "нет" и лочить ячейку. Должно делаться через кондишнл форматтинг мне кажется. Но не гарантирую, у меня экселя уже давно нету.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)