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

Вход

Регистрация

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

 

= Мир MS Excel/ArrayFormula не выводит массив для неравенства. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
ArrayFormula не выводит массив для неравенства.
Kashimirush Дата: Вторник, 05.11.2019, 12:50 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
Всем привет.
Код
=ArrayFormula(And(D2:D>50;D2:D<90))

Подскажите почему не работает формула, ожидал: что будет выводится массив булевых значений относительно столбца D,
Реальность : выводится 1 значение в ячейку с формулой.
И как правильно записать формулу?


Работа, работа, перейди на Федота...
 
Ответить
СообщениеВсем привет.
Код
=ArrayFormula(And(D2:D>50;D2:D<90))

Подскажите почему не работает формула, ожидал: что будет выводится массив булевых значений относительно столбца D,
Реальность : выводится 1 значение в ячейку с формулой.
И как правильно записать формулу?

Автор - Kashimirush
Дата добавления - 05.11.2019 в 12:50
Kashimirush Дата: Вторник, 05.11.2019, 13:12 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
Сделал так:
Код
=ArrayFormula(If((D2:D>49)+(D2:D<90)=2;true;false))


Работа, работа, перейди на Федота...
 
Ответить
СообщениеСделал так:
Код
=ArrayFormula(If((D2:D>49)+(D2:D<90)=2;true;false))

Автор - Kashimirush
Дата добавления - 05.11.2019 в 13:12
Gustav Дата: Вторник, 05.11.2019, 13:52 | Сообщение № 3
Группа: Админы
Ранг: Участник клуба
Сообщений: 2809
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Можно еще короче, без явного IF:
Код
=ArrayFormula((D2:D>49)*(D2:D<90)>0)

По традиции подобных вычислений AND заменяется умножением (*), а OR - сложением (+). Общий результат получившегося выражения сравнивается с 0: больше 0 = TRUE, иначе = FALSE.

ожидал: что будет выводится массив булевых значений относительно столбца D

Функции AND() и OR() при любых раскладах возвращают только одно значение, вычисленное по всем условиям внутри их скобок. Точно так же возвращает одно (общее) значение и функция SUM при обоих написаниях ниже:
Код
=ArrayFormula(SUM(D2:D;D2:D))

Код
=SUM(D2:D;D2:D)

Версия же со знаком + вместо SUM вернет как раз построчные суммы:
Код
=ArrayFormula(D2:D+D2:D)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеМожно еще короче, без явного IF:
Код
=ArrayFormula((D2:D>49)*(D2:D<90)>0)

По традиции подобных вычислений AND заменяется умножением (*), а OR - сложением (+). Общий результат получившегося выражения сравнивается с 0: больше 0 = TRUE, иначе = FALSE.

ожидал: что будет выводится массив булевых значений относительно столбца D

Функции AND() и OR() при любых раскладах возвращают только одно значение, вычисленное по всем условиям внутри их скобок. Точно так же возвращает одно (общее) значение и функция SUM при обоих написаниях ниже:
Код
=ArrayFormula(SUM(D2:D;D2:D))

Код
=SUM(D2:D;D2:D)

Версия же со знаком + вместо SUM вернет как раз построчные суммы:
Код
=ArrayFormula(D2:D+D2:D)

Автор - Gustav
Дата добавления - 05.11.2019 в 13:52
Kashimirush Дата: Вторник, 05.11.2019, 15:33 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
Gustav,
Век живи - век учись!


Работа, работа, перейди на Федота...
 
Ответить
СообщениеGustav,
Век живи - век учись!

Автор - Kashimirush
Дата добавления - 05.11.2019 в 15:33
  • Страница 1 из 1
  • 1
Поиск:

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