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

Вход

Регистрация

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

 

= Мир MS Excel/Сортировка строк по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Сортировка строк по условию
bubanay Дата: Пятница, 14.12.2018, 16:52 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте. Подготовил пример задачи https://docs.google.com/spreads....sharing

На Листе1 две колонки. Колонка B заполнена всегда, в колонке А есть пустые клетки (остальные заполнены не обязательно цифрами).

Можно ли на вкладку Результат вывести фразы из диапазона B:B1000 у которых левая клетка A пустая. Должно быть как сейчас в Результате, без пустых строк, просто фразы столбиком.
 
Ответить
СообщениеЗдравствуйте. Подготовил пример задачи https://docs.google.com/spreads....sharing

На Листе1 две колонки. Колонка B заполнена всегда, в колонке А есть пустые клетки (остальные заполнены не обязательно цифрами).

Можно ли на вкладку Результат вывести фразы из диапазона B:B1000 у которых левая клетка A пустая. Должно быть как сейчас в Результате, без пустых строк, просто фразы столбиком.

Автор - bubanay
Дата добавления - 14.12.2018 в 16:52
Gustav Дата: Суббота, 15.12.2018, 15:22 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2809
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Формула для ячейки A1 листа "Результат":
[vba]
Код
=FILTER('Лист1'!B2:B; ISBLANK('Лист1'!A2:A); NOT(ISBLANK('Лист1'!B2:B)))
[/vba]
Все ячейки ниже A1 должны быть пустыми (по крайней мере в количестве, достаточном для отображения всех результатов функции FILTER), иначе в A1 возникнет ошибка #REF.

P.S. Можно два простых условия в функции FILTER заменить одним составным:
[vba]
Код
=FILTER('Лист1'!B2:B; ISBLANK('Лист1'!A2:A)*NOT(ISBLANK('Лист1'!B2:B))>0)
[/vba]
и даже без явного сравнения с нулем:
[vba]
Код
=FILTER('Лист1'!B2:B; ISBLANK('Лист1'!A2:A)*NOT(ISBLANK('Лист1'!B2:B)))
[/vba]
Но нельзя использовать кажущееся естественным объединение условий при помощи AND:
[vba]
Код
=FILTER('Лист1'!B2:B; AND(ISBLANK('Лист1'!A2:A); NOT(ISBLANK('Лист1'!B2:B))))
[/vba]

ибо AND - немассивная функция. В работающих же выше вариантах роль AND выполняет операция умножения (знак *), и подобная замена является известным в подобных случаях трюком (наряду с заменой функции OR знаком + ).


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Суббота, 15.12.2018, 16:07
 
Ответить
СообщениеФормула для ячейки A1 листа "Результат":
[vba]
Код
=FILTER('Лист1'!B2:B; ISBLANK('Лист1'!A2:A); NOT(ISBLANK('Лист1'!B2:B)))
[/vba]
Все ячейки ниже A1 должны быть пустыми (по крайней мере в количестве, достаточном для отображения всех результатов функции FILTER), иначе в A1 возникнет ошибка #REF.

P.S. Можно два простых условия в функции FILTER заменить одним составным:
[vba]
Код
=FILTER('Лист1'!B2:B; ISBLANK('Лист1'!A2:A)*NOT(ISBLANK('Лист1'!B2:B))>0)
[/vba]
и даже без явного сравнения с нулем:
[vba]
Код
=FILTER('Лист1'!B2:B; ISBLANK('Лист1'!A2:A)*NOT(ISBLANK('Лист1'!B2:B)))
[/vba]
Но нельзя использовать кажущееся естественным объединение условий при помощи AND:
[vba]
Код
=FILTER('Лист1'!B2:B; AND(ISBLANK('Лист1'!A2:A); NOT(ISBLANK('Лист1'!B2:B))))
[/vba]

ибо AND - немассивная функция. В работающих же выше вариантах роль AND выполняет операция умножения (знак *), и подобная замена является известным в подобных случаях трюком (наряду с заменой функции OR знаком + ).

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

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