Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/ЕСЛИ значение = ИСТИНА - число, если ЛОЖЬ - список - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » ЕСЛИ значение = ИСТИНА - число, если ЛОЖЬ - список (Формулы/Formulas)
ЕСЛИ значение = ИСТИНА - число, если ЛОЖЬ - список
Diman1990 Дата: Понедельник, 17.10.2016, 05:04 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день! Прошу помочь с условием ЕСЛИ. Как забить формулу в ячейку D1, так чтобы при значении ячейки С1="Заклепка" значение ячейки принимало значение 1, а при при значении ячейки С1="Болт" в ячейке D1 появлялся выпадающий список со значениями 0,5;0,7;0,9?
=ЕСЛИ(C1="Заклепка";1;СПИСОК(0,5;0,7;0,9))
К сообщению приложен файл: 0222277.xlsx (8.6 Kb)
 
Ответить
СообщениеДобрый день! Прошу помочь с условием ЕСЛИ. Как забить формулу в ячейку D1, так чтобы при значении ячейки С1="Заклепка" значение ячейки принимало значение 1, а при при значении ячейки С1="Болт" в ячейке D1 появлялся выпадающий список со значениями 0,5;0,7;0,9?
=ЕСЛИ(C1="Заклепка";1;СПИСОК(0,5;0,7;0,9))

Автор - Diman1990
Дата добавления - 17.10.2016 в 05:04
Nic70y Дата: Понедельник, 17.10.2016, 07:02 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8757
Репутация: 2271 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("c1:c10000")) Is Nothing Then
    If Target.Count > 1 Then Exit Sub 'избежать ошибку
    If Target <> "Заклепка" Then
    If Target.Offset(0, 1) = 1 Then Target.Offset(0, 1).Delete 'убрать не нужную 1
    With Target.Offset(0, 1).Validation 'создаем список
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=Болт"
    End With
    Else
    Target.Offset(0, 1).Delete 'удалить список, если надо конечно
    Target.Offset(0, 1) = 1
    End If
End If
End Sub
[/vba]
К сообщению приложен файл: 0222277.xlsm (14.8 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("c1:c10000")) Is Nothing Then
    If Target.Count > 1 Then Exit Sub 'избежать ошибку
    If Target <> "Заклепка" Then
    If Target.Offset(0, 1) = 1 Then Target.Offset(0, 1).Delete 'убрать не нужную 1
    With Target.Offset(0, 1).Validation 'создаем список
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=Болт"
    End With
    Else
    Target.Offset(0, 1).Delete 'удалить список, если надо конечно
    Target.Offset(0, 1) = 1
    End If
End If
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 17.10.2016 в 07:02
Diman1990 Дата: Понедельник, 17.10.2016, 07:44 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, не корректно работает, список выпадает но значение в ячейке не меняется. Остается равным 1
 
Ответить
Сообщение_Boroda_, не корректно работает, список выпадает но значение в ячейке не меняется. Остается равным 1

Автор - Diman1990
Дата добавления - 17.10.2016 в 07:44
_Boroda_ Дата: Понедельник, 17.10.2016, 07:52 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16672
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Я знаю. Я уже стер


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЯ знаю. Я уже стер

Автор - _Boroda_
Дата добавления - 17.10.2016 в 07:52
Nic70y Дата: Понедельник, 17.10.2016, 07:55 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 8757
Репутация: 2271 ±
Замечаний: 0% ±

Excel 2010
[offtop]
Я уже стер
а я уже хотел возмутиться! Где _Boroda_? :D
[/offtop]


ЮMoney 41001841029809
 
Ответить
Сообщение[offtop]
Я уже стер
а я уже хотел возмутиться! Где _Boroda_? :D
[/offtop]

Автор - Nic70y
Дата добавления - 17.10.2016 в 07:55
Diman1990 Дата: Понедельник, 17.10.2016, 07:59 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Nic70y, я в макросах совсем не силен) поэтому удачней был бы конечно вариант Бороды)
 
Ответить
СообщениеNic70y, я в макросах совсем не силен) поэтому удачней был бы конечно вариант Бороды)

Автор - Diman1990
Дата добавления - 17.10.2016 в 07:59
Pelena Дата: Понедельник, 17.10.2016, 09:08 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Совсем без макросов, наверное, только так
К сообщению приложен файл: 8966733.xlsx (8.3 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеСовсем без макросов, наверное, только так

Автор - Pelena
Дата добавления - 17.10.2016 в 09:08
_Boroda_ Дата: Понедельник, 17.10.2016, 09:23 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16672
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Я обычно еще условное форматирование добавляю, чтобы сразу видно было, что значение не из списка.
К сообщению приложен файл: 8966733_1.xlsx (9.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЯ обычно еще условное форматирование добавляю, чтобы сразу видно было, что значение не из списка.

Автор - _Boroda_
Дата добавления - 17.10.2016 в 09:23
Nic70y Дата: Понедельник, 17.10.2016, 09:27 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 8757
Репутация: 2271 ±
Замечаний: 0% ±

Excel 2010
я в макросах совсем не силен)
я тоже,
но есть метод научного тыка.
макрос находится в модуле листа (ПКМ по ярлыку листа, исходный текст)
срабатывает на событие изменения ячеек в диапазоне c1:c10000
If Not Intersect(Target, Range("c1:c10000")) Is Nothing Then
если изменяемых ячеек более 1, то выходим
If Target.Count > 1 Then Exit Sub
если ячейка не равна "Заклепка" в соседнюю вставляем выпадающий список (записал рекордером)
With Target.Offset(0, 1).Validation 'создаем список
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Болт"
End With

иначепишем 1
Target.Offset(0, 1) = 1
Offset(0, 1) - это смещения от изменяемой ячейки на 0 строк и 1 столбец вправо, если нужно влево, то -1


ЮMoney 41001841029809
 
Ответить
Сообщение
я в макросах совсем не силен)
я тоже,
но есть метод научного тыка.
макрос находится в модуле листа (ПКМ по ярлыку листа, исходный текст)
срабатывает на событие изменения ячеек в диапазоне c1:c10000
If Not Intersect(Target, Range("c1:c10000")) Is Nothing Then
если изменяемых ячеек более 1, то выходим
If Target.Count > 1 Then Exit Sub
если ячейка не равна "Заклепка" в соседнюю вставляем выпадающий список (записал рекордером)
With Target.Offset(0, 1).Validation 'создаем список
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Болт"
End With

иначепишем 1
Target.Offset(0, 1) = 1
Offset(0, 1) - это смещения от изменяемой ячейки на 0 строк и 1 столбец вправо, если нужно влево, то -1

Автор - Nic70y
Дата добавления - 17.10.2016 в 09:27
Diman1990 Дата: Понедельник, 17.10.2016, 09:34 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Pelena, вот так я и хотел сделать) вопрос только как Вы это сделали?) не могу сообразить
 
Ответить
СообщениеPelena, вот так я и хотел сделать) вопрос только как Вы это сделали?) не могу сообразить

Автор - Diman1990
Дата добавления - 17.10.2016 в 09:34
Pelena Дата: Понедельник, 17.10.2016, 09:36 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
См. формулу в Проверке данных


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеСм. формулу в Проверке данных

Автор - Pelena
Дата добавления - 17.10.2016 в 09:36
_Boroda_ Дата: Понедельник, 17.10.2016, 09:57 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16672
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Еще вариант с макросом
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C1")) Is Nothing Then 'если изменяем в том числе и ячейку С1
        Range("D1").Validation.Delete 'убираем проверку данных из D1
        Select Case Range("C1") 'Если С1
            Case "Заклепка" 'равно Заклепка, то
                Range("D1") = 1 'D1=1
            Case "Болт" 'равно Болт, то
                Range("D1") = "Выбери" 'D1="выбери"
                Range("D1").Validation.Add Type:=xlValidateList, Formula1:="=Болт" ' в D1 - проверку данных
        End Select
    End If
End Sub
[/vba]
К сообщению приложен файл: 8966733_2.xlsm (16.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕще вариант с макросом
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C1")) Is Nothing Then 'если изменяем в том числе и ячейку С1
        Range("D1").Validation.Delete 'убираем проверку данных из D1
        Select Case Range("C1") 'Если С1
            Case "Заклепка" 'равно Заклепка, то
                Range("D1") = 1 'D1=1
            Case "Болт" 'равно Болт, то
                Range("D1") = "Выбери" 'D1="выбери"
                Range("D1").Validation.Add Type:=xlValidateList, Formula1:="=Болт" ' в D1 - проверку данных
        End Select
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 17.10.2016 в 09:57
Diman1990 Дата: Понедельник, 17.10.2016, 11:04 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Pelena, минус в том, что если выбран болт и значение не равное 1, то при изменении значения на заклепку придется снова выбирать 1. Можно как-нибудь придумать, чтобы 1 автоматически вводилась в ячейку при выборе заклепки?
 
Ответить
СообщениеPelena, минус в том, что если выбран болт и значение не равное 1, то при изменении значения на заклепку придется снова выбирать 1. Можно как-нибудь придумать, чтобы 1 автоматически вводилась в ячейку при выборе заклепки?

Автор - Diman1990
Дата добавления - 17.10.2016 в 11:04
Nic70y Дата: Понедельник, 17.10.2016, 15:38 | Сообщение № 14
Группа: Друзья
Ранг: Экселист
Сообщений: 8757
Репутация: 2271 ±
Замечаний: 0% ±

Excel 2010
автоматически
тока макросом :(


ЮMoney 41001841029809
 
Ответить
Сообщение
автоматически
тока макросом :(

Автор - Nic70y
Дата добавления - 17.10.2016 в 15:38
Мир MS Excel » Вопросы и решения » Вопросы по Excel » ЕСЛИ значение = ИСТИНА - число, если ЛОЖЬ - список (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!