Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2012, 16:07   #1
Spicker
 
Регистрация: 16.06.2012
Сообщений: 7
По умолчанию количество вложений "ЕСЛИ"

Здравствуйте.

Подскажите пожалуйста как можно увеличит количество вложений "ЕСЛИ" больше 7, или может каким оператором можно дополнить формулу?

Спасибо.
Spicker вне форума Ответить с цитированием
Старый 16.06.2012, 17:20   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

1. Создать пользовательскую функцию.
2. Если возможно, использовать логические операторы "И", "ИЛИ" и т. п.
3. Воспользоваться дополнительной ячейкой, "разбив" много вложений "ЕСЛИ".
4. Если Вы опишите задачу более конкретно, то наши "формулисты" помогут Вам в оптимизации.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 16.06.2012, 18:27   #3
Spicker
 
Регистрация: 16.06.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
1. Создать пользовательскую функцию.
2. Если возможно, использовать логические операторы "И", "ИЛИ" и т. п.
3. Воспользоваться дополнительной ячейкой, "разбив" много вложений "ЕСЛИ".
4. Если Вы опишите задачу более конкретно, то наши "формулисты" помогут Вам в оптимизации.

Сейчас у меня так

=ЕСЛИ(M26>=Q14;R14;ЕСЛИ(M26>=Q15;R1 5;ЕСЛИ(M26>=Q16;R16;ЕСЛИ(M26>=Q17;R 17;ЕСЛИ(M26>=Q18;R18;ЕСЛИ(M26>=Q19; R19;ЕСЛИ(M26>=Q20;R20;ЕСЛИ(M26>=Q21 ;R21;ЕСЛИ - дальше не принимает - как продолжить???

А задача такая- есть переменное значение М26, есть деталь Q, есть параметр детали R. Нужно, чтоб переменное значение М26 сравнивалось с параметром детали R и искало ближайщее в большую сторону R и выдовало номер детали Q.

2012-06-16_171913.jpg

Последний раз редактировалось Spicker; 16.06.2012 в 18:34.
Spicker вне форума Ответить с цитированием
Старый 16.06.2012, 18:28   #4
manowar_gub
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 21
По умолчанию

Я пользуюсь 3 способом: если(а<>b;c;(если(a<>d;e;.... и так до последнего Если, где при логическом ложь указывается ячейка для продолжения. А в ней уже прописываете оставшиеся если
manowar_gub вне форума Ответить с цитированием
Старый 16.06.2012, 18:34   #5
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Spicker Посмотреть сообщение
Пример во вложенном файле.
Вложенного файла не нашёл, но думаю так подойдёт:
Код:
=ВПР(M$26;Q$14:R$99;2;)
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 16.06.2012, 18:55   #6
Spicker
 
Регистрация: 16.06.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge 007 Посмотреть сообщение
Вложенного файла не нашёл, но думаю так подойдёт:
Код:
=ВПР(M$26;Q$14:R$99;2;)
Да пробовал - не получается.
Spicker вне форума Ответить с цитированием
Старый 16.06.2012, 19:21   #7
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Spicker Посмотреть сообщение
Да пробовал - не получается.
Очень сильно сомневаюсь.
Такую конструкцию используют ЕДИНИЦЫ в мире и Вы, при всём моём уважении, вряд ли в эти единицы входите.

Пример давайте, с пояснениями что не получается
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 16.06.2012, 19:39   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если я правильно понял, то могу предложить пользовательскую функцию:
Код:
Function MyValue(rng As Range, Cell As Range) As Variant
    Dim a(), i As Integer, x: a = rng.Value
    For i = LBound(a, 1) To UBound(a, 1) - 1
        For j = i + 1 To UBound(a, 1)
            If a(i, 2) > a(j, 2) Then
                x = a(i, 1): a(i, 1) = a(j, 1): a(j, 1) = x
                x = a(i, 2): a(i, 2) = a(j, 2): a(j, 2) = x
            End If
        Next
    Next
    For i = 1 To UBound(a, 1)
        If Cell <= a(i, 2) Then Exit For
    Next
    MyValue = a(i, 1)
End Function
Параметры функции:
rng - диапазон значений (например, "Q14:R100")
Cell - ячейка сравнения (например, "M26")
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 16.06.2012, 19:42   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

довольно беспредметный разговор из-за отсутсвия файла, но...
Код:
=ИНДЕКС(Q:Q;ПОИСКПОЗ(M26;R:R)+1-СЧЁТЕСЛИ(R:R;M26))
Сережа,
1. ВПР не пойдет, деталь ищем по параметру в столбце R:R, а значение необходимо забрать из Q:Q
2. точный поиск тоже не катит значения 33.94 - нет в списке параметров

Spicker,
судя по данным, вообще можно и так (без ИНДЕКС):
Код:
=2975+ПОИСКПОЗ(M26;R:R)+1-СЧЁТЕСЛИ(R:R;M26)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.06.2012, 19:49   #10
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
довольно беспредметный разговор из-за отсутсвия файла,...
1. ВПР не пойдет, деталь ищем по параметру в столбце R:R, а значение необходимо забрать из Q:Q
2. точный поиск тоже не катит значения 33.94 - нет в списке параметров
довольно беспредметный разговор из-за отсутствия файла...
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа функциями "ЕСЛИ", "И" и вывод текстового результата johny_03 Microsoft Office Excel 3 04.08.2014 11:01
Подсчитать количество букв "й", "ы" и "я", содержащихся в заданной строке. VoltZZZ Помощь студентам 2 01.03.2012 23:39
если >30 тогда "да" иначе "нет"... DBgrid Daur БД в Delphi 4 30.05.2010 16:54
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. Каравай Microsoft Office Excel 13 17.02.2010 09:53
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51