Почему-то нигде такого не встречал, а сам давно пользуюсь. Поэтому вот, представляю на суд общественности мое решение. ==========================================
Везде, и в рунете, и на англ. сайтах я видел, что народ советует для нескольких условий формулы с вложенными "ЕСЛИ". Но увы, когда условий больше 3х это превращается в ужасную кашу со скобками. Например, вот формула, где, в зависимости от вхождения числа в какой-то диапазон, возвращается число: Доступно только для пользователей Сразу видно, что тут сложно легко запутаться в скобочках. Еще сложнее добавить еще одно условие, и при этом ничего не сломать
Я же вместо этого предпочитаю склейку из формул. Например, вот, та же формула, но моим способом:
Это набор из нескольких формул "ЕСЛИ", каждая из которых возвращает число, если условие истинно, или пустую строку, если ложь. Все возвращенные строки соединяются в одну с помощью символа & (объединение строк).
Получается, если мы правильно написали условия, у нас будет соединение пустых строк и одного числа => остается одно это число. Нужно помнить, что полученное таким способом число будет сохранено в текстовом формате, и мы не сможем его исползовать в арифметических формулах. Чтобы этого избежать, я оборачиваю всю конструкцию в =Знач(). Эта формула преобразует текст в число.
Вот еще более сложный пример. Нужно получить Строку на основании входных данных. [vba]
[/vba] Разумеется, главный минус такого решения, - можно ошибиться в условиях и получить склеенный текст, если две или больше формул окажутся одновременно истинными. Как раз, рожая эту формулу, я около 20 минут потратил на её отладку. но я боюсь даже представить, как бы выглядела формула, если ее писать стандартным подходом с вложенными "ЕСЛИ".
PS. Говорите, что думаете по этому поводу, предлагайте свои варианты. Но я за все время использования (около 3хлет) не нашел недостатков у такого подхода. PPS. Простите, без форматирования. форматтеру почему-то не нравились переводы строки в формулах, а без них все ужасно выглядит.
Почему-то нигде такого не встречал, а сам давно пользуюсь. Поэтому вот, представляю на суд общественности мое решение. ==========================================
Везде, и в рунете, и на англ. сайтах я видел, что народ советует для нескольких условий формулы с вложенными "ЕСЛИ". Но увы, когда условий больше 3х это превращается в ужасную кашу со скобками. Например, вот формула, где, в зависимости от вхождения числа в какой-то диапазон, возвращается число: Доступно только для пользователей Сразу видно, что тут сложно легко запутаться в скобочках. Еще сложнее добавить еще одно условие, и при этом ничего не сломать
Я же вместо этого предпочитаю склейку из формул. Например, вот, та же формула, но моим способом:
Это набор из нескольких формул "ЕСЛИ", каждая из которых возвращает число, если условие истинно, или пустую строку, если ложь. Все возвращенные строки соединяются в одну с помощью символа & (объединение строк).
Получается, если мы правильно написали условия, у нас будет соединение пустых строк и одного числа => остается одно это число. Нужно помнить, что полученное таким способом число будет сохранено в текстовом формате, и мы не сможем его исползовать в арифметических формулах. Чтобы этого избежать, я оборачиваю всю конструкцию в =Знач(). Эта формула преобразует текст в число.
Вот еще более сложный пример. Нужно получить Строку на основании входных данных. [vba]
[/vba] Разумеется, главный минус такого решения, - можно ошибиться в условиях и получить склеенный текст, если две или больше формул окажутся одновременно истинными. Как раз, рожая эту формулу, я около 20 минут потратил на её отладку. но я боюсь даже представить, как бы выглядела формула, если ее писать стандартным подходом с вложенными "ЕСЛИ".
PS. Говорите, что думаете по этому поводу, предлагайте свои варианты. Но я за все время использования (около 3хлет) не нашел недостатков у такого подхода. PPS. Простите, без форматирования. форматтеру почему-то не нравились переводы строки в формулах, а без них все ужасно выглядит.PATRI0T
Сообщение отредактировал PATRI0T - Понедельник, 03.08.2020, 17:07
[/vba] как по мне так вполне так удобно. Только тут пробелы поплыли, у меня вполне всё ровно, ща скрин сделаю. Вот: https://u.to/f6M9GQ Хотя конечно если делать сложнее - то с амперсандом удобно получается, спасибо.
[/vba] как по мне так вполне так удобно. Только тут пробелы поплыли, у меня вполне всё ровно, ща скрин сделаю. Вот: https://u.to/f6M9GQ Хотя конечно если делать сложнее - то с амперсандом удобно получается, спасибо.Hugo
У Вас прямо единство и борьба противоположностей! С одной стороны, стремление к гармонии визуального отображения формулы, с другой - хромающее качество фрагментов.
, суть которого (когда, наконец, не с ходу разберешься - а думать о возможном сопровождении формулы не Вами нужно всегда!) - "Материал НЕ ВХОДИТ в Ряд значений", может быть заменен явно более прозрачным фрагментом:
Код
ЕОШ(ПОИСК([@Материал];"Пластик,Ламинат,МДФ"))
Соответственно, при обратной ситуации, когда "Материал ВХОДИТ в Ряд значений" фрагмент:
У Вас прямо единство и борьба противоположностей! С одной стороны, стремление к гармонии визуального отображения формулы, с другой - хромающее качество фрагментов.
, суть которого (когда, наконец, не с ходу разберешься - а думать о возможном сопровождении формулы не Вами нужно всегда!) - "Материал НЕ ВХОДИТ в Ряд значений", может быть заменен явно более прозрачным фрагментом:
Код
ЕОШ(ПОИСК([@Материал];"Пластик,Ламинат,МДФ"))
Соответственно, при обратной ситуации, когда "Материал ВХОДИТ в Ряд значений" фрагмент: