Excel пропустить пустую ячейку

  • Редакция Кодкампа

17 авг. 2022 г.
читать 2 мин


Вы можете использовать следующие формулы в Excel, чтобы игнорировать пустые ячейки при выполнении вычислений:

Формула 1: игнорировать пустые ячейки в одном столбце

=IF( A2 <>"", A2 +10, "")

Эта конкретная формула добавляет 10 к значению в ячейке A2 , только если значение в ячейке A2 не является пустым.

Формула 2: игнорировать пустые ячейки в нескольких столбцах

=IF(AND( A2 <>"", B2 <>""), A2 + B2 , "")

Эта конкретная формула добавляет значения в ячейки A2 и B2 , только если обе ячейки не пусты.

В следующих примерах показано, как использовать каждую формулу на практике.

Пример 1: игнорировать пустые ячейки в одном столбце

Предположим, у нас есть следующие данные в Excel, которые показывают очки, набранные различными баскетболистами:

Теперь предположим, что мы используем следующую формулу, чтобы добавить 10 к каждому из значений в столбце A:

= A2 +10

На следующем снимке экрана показано, как использовать эту формулу:

Обратите внимание, что 10 добавляется к каждой ячейке в столбце А, даже если ячейка в столбце А пуста.

Вместо этого мы можем использовать следующую формулу, чтобы добавить 10 к каждой из ячеек в столбце A и полностью игнорировать пустые ячейки:

=IF( A2 <>"", A2 +10, "")

На следующем снимке экрана показано, как использовать эту формулу:

Обратите внимание, что 10 добавляется только к каждой ячейке в столбце A, которая не пуста.

Пример 2. Игнорирование пустых ячеек в нескольких столбцах

Предположим, у нас есть следующие данные в Excel, которые показывают набранные очки и подборы, собранные различными баскетболистами:

Мы можем использовать следующую формулу, чтобы сложить значения в столбцах очков и подборов только для строк, где оба значения не пусты:

=IF(AND( A2 <>"", B2 <>""), A2 + B2 , "")

На следующем снимке экрана показано, как использовать эту формулу:

Обратите внимание, что значения очков и подборов добавляются только для тех строк, где оба значения не являются пустыми.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в Excel:

Как заменить значения #N/A в Excel
Как игнорировать значения #N/A при использовании формул в Excel

Некоторые из Вас, должно быть, обратили внимание на такой инструмент Excel как Paste Special (Специальная вставка). Многим, возможно, приходилось испытывать недоумение, если не разочарование, при копировании и вставке данных в Excel. Вы вставляли данные и получали совсем не то, что ожидали получить. Я покажу Вам некоторые интересные трюки с использованием Специальной вставки и расскажу, как использовать некоторые полезные возможности этого инструмента, чтобы данные всегда выглядели именно так, как нужно.

После прочтения этой статьи Вы научитесь транспонировать, удалять ссылки и пропускать пустые ячейки при помощи инструмента Paste Special (Специальная вставка). После каждого раздела приведено краткое пошаговое резюме. Пользуйтесь ссылками быстрого доступа или распечатайте эти резюме на бумаге, поместите рядом с компьютером и используйте их как удобную инструкцию. Ну что ж, приступим!

Если Вы хотите при помощи инструмента Paste Special (Специальная вставка) научиться вставлять только значения или форматирование, копировать ширину столбцов, умножать и делить данные на заданное число, а также прибавлять и удалять значение сразу из целого диапазона ячеек обратитесь к статье Специальная вставка в Excel: значения, форматы, ширина столбцов .

  • Базовые знания о Специальной вставке
  • Транспонировать: преобразуем столбцы в строки (или наоборот)
  • Транспонировать – кратко о главном
  • Удаляем гиперссылки
  • Быстрое удаление гиперссылок – кратко о главном
  • Пропускаем пустые ячейки
  • Пропускаем пустые ячейки – кратко о главном

Содержание

  1. Базовые знания о Специальной вставке
  2. Преобразуем столбцы в строки (или наоборот)
  3. Транспонировать – кратко о главном
  4. Удаляем гиперссылки (много и быстро)
  5. Быстрое удаление гиперссылок – кратко о главном
  6. Пропускаем пустые ячейки
  7. Пропускаем пустые ячейки – кратко о главном

Базовые знания о Специальной вставке

Прежде чем воспользоваться инструментом Paste Special (Специальная вставка), Вы должны иметь что-то в буфере обмена, иначе, при попытке использовать эти функции, они будут серого цвета и не активны, как на рисунке ниже.

Первым делом Вы должны скопировать данные в буфер обмена, иначе не сможете воспользоваться функцией Специальная вставка. На рисунке видно, что на Ленте и в контекстном меню, инструмент Paste Special (Специальная вставка) не активен:

Специальная вставка в Excel

Сначала Вы должны выбрать и скопировать любую информацию. После этого действия Excel хранит скопированные данные в буфере обмена. Теперь Вы можете использовать Специальную вставку. Есть два способа вызвать эту функцию. Оба открывают диалоговое окно Paste Special (Специальная вставка), которое предоставляет доступ к целому набору полезных настроек (см. рисунок ниже).

Воспользуйтесь одним из следующих способов:

  1. На вкладке Home (Главная) нажмите на маленький треугольник под словом Paste (Вставить) и в выпадающем меню выберите Paste Special (Специальная вставка).
  2. Щелкните правой кнопкой мыши, а затем в контекстном меню выберите Paste Special (Специальная вставка).

Заметьте, что после того, как Вы скопировали данные, Специальная вставка становится доступной.

Специальная вставка в Excel

Преобразуем столбцы в строки (или наоборот)

Оставим позади основы и давайте немного взбодримся. В следующем примере будем использовать таблицу, созданную для контроля калорий во время диеты. Допустим, таблица Вас устраивает, но не нравится, что наименования продуктов расположены вертикально. Хотелось бы расположить дни недели вертикально, а наименования продуктов – в строке. Другими словами, Вы хотите транспонировать эти данные.

Для этого выделяем данные, копируем их, ставим курсор в нужную ячейку, открываем меню инструмента Paste Special (Специальная вставка) и выбираем Transpose (Транспонировать) – все это показано на изображениях ниже. Видите, как просто сделать таблицу такой, как Вы хотите? Представьте себе все возможности, которые дает инструмент Transpose (Транспонировать).

Первый пример транспонирования таблицы:

Специальная вставка в Excel

Другое применение транспонирования, которое мне очень нравится, – это копирование данных из какого-либо источника и добавление их в текущую таблицу. Это отличный способ собирать воедино и приводить в соответствие данные из двух различных источников. Все данные будут выглядеть единообразно, и Вы с легкостью сможете настроить формулы.

Например, Вам в руки попадает вот такой шаблон (смотрите ниже), предоставленный компанией, чтобы заполнить отчёт о расходах при посещении конференции.

Специальная вставка в Excel

Однако, на конференции, которую Вы посещали, был предоставлен электронный отчёт в таком виде:

Специальная вставка в Excel

Просто скопируйте нужную информацию (в нашем случае B1:B11), поместите курсор в ячейку, в которую Вы хотите вставить эту информацию (ячейка C3 в шаблоне), нажмите Paste Special (Специальная вставка), а затем выберите опцию Transpose (Транспонировать). Вот что получится:

Специальная вставка в Excel

Отлично! Теперь вся информация выглядит единообразно, и Вы можете продолжать добавлять строки для всех совершаемых Вами поездок.

Транспонировать – кратко о главном

  1. Выберите данные.
  2. Скопируйте выбранные данные. Команда Cut (Вырезать) не позволит использовать Специальную вставку, поэтому воспользуйтесь именно командой Copy (Копировать).
  3. Поместите курсор в ячейку, в которую нужно вставить данные.

Замечание: Убедитесь, что имеется достаточно места для вставки данных. Не выделяйте всю строку или столбец, если не располагаете достаточным количеством свободного места. Убедитесь, что новые данные не будут записаны поверх существующих и нужных Вам.

  1. Нажмите Paste Special (Специальная вставка). Это можно сделать 2-мя путями:
    • Щелкните правой кнопкой мыши и выберите в контекстном меню Paste Special (Специальная вставка).
    • На вкладке Home (Главная) под командой Paste (Вставить) нажмите маленький треугольник и в открывшемся меню выберите Paste Special (Специальная вставка).

    Оба способа откроют диалоговое окно Paste Special (Специальная вставка), в котором Вы найдёте множество полезных настроек.

  2. Поставьте галочку в строке опции Transpose (Транспонировать).

Удаляем гиперссылки (много и быстро)

Это было весело! Теперь давайте попробуем другую интересную функцию Специальной вставки. Этот трюк особенно полезен, когда требуется вставить текст, насыщенный гиперссылками. Гиперссылки иногда попадаются под руку в процессе работы с данными в Excel. Обратите внимание на синий подчёркнутый текст на рисунке ниже. В каждой ячейке столбца A содержится гиперссылка. Каждый раз, когда Вы кликаете по ячейке, компьютер открывает гиперссылку. Вы можете щелкать правой кнопкой мыши по каждой ячейке и выбирать команду Remove hyperlink (Удалить гиперссылку), но это займёт целую вечность. Представьте, если в Вашей таблице содержится 2000 строк и 1000 столбцов.

Специальная вставка в Excel

Вместо этого Вы можете использовать возможности Специальной вставки, чтобы удалить все эти гиперссылки разом. Готовы? Выделите все ячейки, из которых нужно удалить гиперссылки, и скопируйте их. Поместите курсор в новую ячейку.

Можно попробовать вставить скопированные данные в те же ячейки, но в таком случае Excel может сохранить синий цвет и подчёркивание шрифта. Если это произошло, просто очистите формат.

Нажмите Paste Special (Специальная вставка). В появившемся одноименном диалоговом окне выберите пункт Values (Значения) и нажмите ОК. После этого все гиперссылки будут удалены, и Вы сможете переместить данные на их исходное место. Очень просто, правда? Посмотрите на рисунки ниже, там показано пошаговое выполнение этой операции.

Быстрое удаление гиперссылок – кратко о главном

  1. Выделите все ячейки, из которых требуется удалить гиперссылки.
  2. Скопируйте их.
  3. Поставьте курсор в ячейку, куда необходимо вставить скопированные данные.
  4. Нажмите Paste Special (Специальная вставка).
  5. Выберите пункт Values (Значения).
  6. Нажмите ОК.
  7. Вырежьте и вставьте ячейки в любое нужное Вам место.

Специальная вставка в Excel

Пропускаем пустые ячейки

Вот ещё один пример (смотрите ниже). Допустим, у меня есть список дней рождения членов семьи и я хочу заменить название члена семьи его настоящим именем (из моего семейного списка контактов). Вы могли бы скопировать и вставить каждую ячейку на нужное место по отдельности, но это займёт очень много времени (особенно, если список длинный). Попробуем это сделать при помощи Специальной вставки.

Обычная команда Paste (Вставить) тут не поможет. Почему? – видно на рисунке ниже. Если Вы скопируете информацию (A6:A19) и вставите в ячейку E4, то эти приставучие пустые ячейки из столбца A будут записаны поверх данных в столбце E, которые Вы хотели бы сохранить. Не желаете ли узнать способ способный пропустить пустые ячейки?

Для этого скопируйте ячейки A5:A19, затем поместите курсор в первую ячейку области, куда необходимо вставить скопированные данные (E4). Далее нажмите Paste Special (Специальная вставка), поставьте галочку на опции Skip Blanks (Пропускать пустые ячейки) и нажмите ОК. Вуаля! Вы успешно скопировали данные из столбца A в столбец E, сохранив все нужные данные. Отличная работа! Это простой пример, но он показывает все возможности, которые открывает для Вас и Ваших таблиц инструмент Skip Blanks (Пропускать пустые ячейки).

Специальная вставка в Excel

Пропускаем пустые ячейки – кратко о главном

  1. Выберите данные, которые хотите скопировать.
  2. Скопируйте их.
  3. Поместите курсор в начальную ячейку области, в которую хотите скопировать.
  4. Нажмите Paste Special (Специальная вставка).
  5. Выберите Skip Blanks (Пропускать пустые ячейки).
  6. Нажмите ОК.

Теперь Вам известны основные принципы работы инструмента Специальная вставка и некоторые классные и супер-классные трюки. Вы можете транспонировать, удалять гиперссылки и пропускать пустые ячейки.

Оцените качество статьи. Нам важно ваше мнение:

Пропуск пустых ячеек формулой

pain2430

Дата: Среда, 31.07.2019, 13:26 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 63


Репутация:

11

±

Замечаний:
0% ±


Excel 2010

Добрый день! Прошу помощи вот в таком вот задании:
В столбце «C» данные полученные формулами.
Нужно чтобы в столбце «F», данные из столбца «C» поочередно выстраивались без пустых ячеек.
Нужна только формула…
Спасибо!

К сообщению приложен файл:

primer.xlsx
(9.4 Kb)

 

Ответить

Che79

Дата: Среда, 31.07.2019, 13:40 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 1649


Репутация:

306

±

Замечаний:
0% ±


2013 Win, 365 Mac

Здравствуйте. Так хотите?

Код

=ЕСЛИОШИБКА(ИНДЕКС($C$10:$C$100;НАИМЕНЬШИЙ(ЕСЛИ($C$10:$C$100<>»»;СТРОКА($C$10:$C$100)-9);СТРОКА(F1)));»»)

Формула массива (ввод Ctrl+Shift+Enter) В желтых ячейках добавил проверку вручную.

К сообщению приложен файл:

_243.xlsx
(9.8 Kb)


Делай нормально и будет нормально!

 

Ответить

Nic70y

Дата: Среда, 31.07.2019, 13:44 |
Сообщение № 3

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010

без Ваших формул (в файле это столбец H)

Код

=ЕСЛИОШИБКА(ЕСЛИ(ИНДЕКС(A:A;НАИМЕНЬШИЙ(ЕСЛИ(A$10:A$24<>»»;СТРОКА(A$10:A$24));СТРОКА(H1)))>10;»A»;»B»);»»)

+ другие варианты

К сообщению приложен файл:

5508506.xlsx
(10.3 Kb)


ЮMoney 41001841029809

 

Ответить

Светлый

Дата: Среда, 31.07.2019, 13:45 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1742


Репутация:

479

±

Замечаний:
0% ±


Excel 2013, 2016

Массивная формула:

Код

=ЕСЛИОШИБКА(ИНДЕКС(C:C;НАИМЕНЬШИЙ(ЕСЛИ(C$9:C$33>»»;СТРОКА($9:$33));СТРОКА(F1)));»»)

*Или так:

Код

=ЕСЛИОШИБКА(ИНДЕКС(C:C;НАИМЕНЬШИЙ(ЕСЛИ(A$9:A$33;СТРОКА($9:$33));СТРОКА(F1)));»»)

**Используя только столбец A:

Код

=ЕСЛИОШИБКА(СИМВОЛ(66-(ИНДЕКС(A:A;НАИМЕНЬШИЙ(ЕСЛИ(A$9:A$33;СТРОКА($9:$33));СТРОКА(F1)))>10));»»)


Программировать проще, чем писать стихи.

Сообщение отредактировал СветлыйСреда, 31.07.2019, 13:56

 

Ответить

pain2430

Дата: Среда, 31.07.2019, 17:52 |
Сообщение № 5

Группа: Пользователи

Ранг: Участник

Сообщений: 63


Репутация:

11

±

Замечаний:
0% ±


Excel 2010

Che79, Nic70y, Светлый, огромное всем спасибо!

 

Ответить

 

Lucien

Пользователь

Сообщений: 11
Регистрация: 12.05.2015

Здравствуйте знатоки.
Как сделать столбец, с пропуском пустых ячеек? И чтобы это было через формулу. (для автоматизма, так как исходники меняются. А сам результат выводится на график.)
(так же в примере есть найденная формула, которая почему-то не работает)
P.S.Прочитал уже много форумов, но выложенные голые формулы не работают. Нужно видимо сразу в таблицу вписать.

Прикрепленные файлы

  • график.xlsx (13.27 КБ)

Изменено: Lucien13.05.2015 13:13:42

 

JeyCi

Пользователь

Сообщений: 3357
Регистрация: 27.11.2013

#2

12.05.2015 20:50:55

увеличьте диапазон до А16(весь исходник)
и введите формулу НЕ Enter, а CTRL+SHIFT+ENTER
— растяните формулу вниз…
… работает формула, представленная  в файле!

Код
=ЕСЛИОШИБКА(ДВССЫЛ("A"&НАИМЕНЬШИЙ(ЕСЛИ(ЕПУСТО($A$2:$A$16);"";СТРОКА($A$2:$A$16));СТРОКА(I1)));"")

Изменено: JeyCi12.05.2015 20:51:41

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

 

Lucien

Пользователь

Сообщений: 11
Регистрация: 12.05.2015

О, Благодарю! Теперь сработало.  Раньше через CTRL+SHIFT+ENTER пытался запустить, но не получалось. Спасибо за быстрый ответ.

 

Lucien

Пользователь

Сообщений: 11
Регистрация: 12.05.2015

И ещё вопросик. В формуле какой-то странный параметр, куда-то вбок направлен. Он нужный или его можно как-то удалить?
=ЕСЛИОШИБКА(ДВССЫЛ(«A»&НАИМЕНЬШИЙ(ЕСЛИ(ЕПУСТО($A$2:$A$16);»»;СТРОКА($A$2:$A$16));СТРОКА(F1)));»»;)

(этот вопрос решён)
После переноса формулы и создания массива, он продолжает работать только
со столбцом «А». Адрес столбца в формуле поменял на «F», но с ним
работать не хочет, а опять берёт значения из столбца «А».  На другой
лист перенёс — та же история.
Как сдвинуть эту хитрую формулу?
(этот вопрос решён) >> столбец меняется здесь >>        =ЕСЛИОШИБКА(ДВССЫЛ(«A»&НАИМЕНЬШИЙ(ЕСЛИ(ЕПУСТО($A$2:$A$16);»»;СТРОКА($A$2:$A$16));СТРОКА(F1)));»»

Изменено: Lucien13.05.2015 17:45:15

 

V

Пользователь

Сообщений: 5018
Регистрация: 22.12.2012

#5

13.05.2015 17:03:01

Цитата
Lucien написал: Адрес столбца в формуле поменял на «F»

это ни чего не даст, почитайте про ф-цию СТРОКА в справке.

 

Lucien

Пользователь

Сообщений: 11
Регистрация: 12.05.2015

Благодарю за ответ. Решение уже сам увидел. А про параметр «СТРОКА» можете сказать? Или просто исправить и всё. Спасибо.
(в справке написано очень умными словами там ничего не понял)

Изменено: Lucien13.05.2015 17:44:43

 

V

Пользователь

Сообщений: 5018
Регистрация: 22.12.2012

#7

13.05.2015 17:08:36

лучше использовать такую формулу

Код
=ЕСЛИОШИБКА(ИНДЕКС($F$2:$F$16;НАИМЕНЬШИЙ(ЕСЛИ(ЕПУСТО($F$2:$F$16);"";СТРОКА($F$1:$F$15));СТРОКА(L1)));"")

чем использовать ДВССЫЛ

 

V

Пользователь

Сообщений: 5018
Регистрация: 22.12.2012

#8

13.05.2015 17:10:35

Цитата
Lucien написал:  А про параметр «СТРОКА» можете сказать? Или просто исправить и всё.

можете его не трогать, то что он сылается на ячейку гдето сбоку не страшно главное чтобы на ячейку в первой строке для первой формулы.

 

Lucien

Пользователь

Сообщений: 11
Регистрация: 12.05.2015

Благодарю за понятные ответы. Попробую использовать рекомендованную формулу.

 

Lucien

Пользователь

Сообщений: 11
Регистрация: 12.05.2015

Оказалось что ячейка не совсем пустая, а с формулой. Как сделать чтобы массив срабатывал от значения «пусто» с формулой внутри?  
(проблема отмечена жёлтым цветом)

 

V

Пользователь

Сообщений: 5018
Регистрация: 22.12.2012

#11

13.05.2015 20:13:42

Код
=ЕСЛИОШИБКА(ИНДЕКС($F$2:$F$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2:$F$16="";"";СТРОКА($F$1:$F$15));СТРОКА(L1)));"")
 

Lucien

Пользователь

Сообщений: 11
Регистрация: 12.05.2015

Спасибо Большое. Что бы я без умных людей делал…

 

farich_13

Пользователь

Сообщений: 17
Регистрация: 27.11.2017

#13

10.08.2019 11:36:38

Цитата
V написал: 1=ЕСЛИОШИБКА(ИНДЕКС($F$2:$F$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2:$F$16=»»;»»;СТРОКА($F$1:$F$15));СТРОКА(L1)));»»)

всем доброе утро.
мне помогла эта формула, но мне в нее необходимо добавить еще 1 условие, наподобие ЕСЛИ($F$2:$F$16=»»;»»;

делаю вот так (в примере мои ячейки):

Цитата
=ЕСЛИОШИБКА(ИНДЕКС($E$1:$E$18;НАИМЕНЬШИЙ(ЕСЛИ($E$1:$E$18=»»;»»;ЕСЛИ($E$1:$E$18=»Иванов»;»»;СТРОКА($E$1:$E$18));СТРОКА(L1)));»»)

Что-то не так, подскажите, почему выдает ошибку:

Прикрепленные файлы

  • Снимок.PNG (14.23 КБ)

Изменено: farich_1313.08.2019 16:37:34

 

artyrH

Пользователь

Сообщений: 2054
Регистрация: 01.07.2018

farich_13, может достаточно добавить еще одну скобку в  — 18)));СТР
а лучше пример бы

 

farich_13

Пользователь

Сообщений: 17
Регистрация: 27.11.2017

#15

14.08.2019 01:03:33

спасибо. помогло.

может в продолжении темы подскажет кто-то: необходимо из столбца подтягивать значения, пропуская пустые ячейки и ячейки со значениями-исключениями. На основе этой ветки удалось сделать это с помощью массива. Но большой минус массива в том, что он долго считает и заметно уменьшает скорость работы самой программы Эксель когда значений много.

Вот, что получилось в итоге:

Код
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$A$18;НАИМЕНЬШИЙ(ЕСЛИ($A$1:$A$18="";"";ЕСЛИ($A$1:$A$18=$F$2;"";ЕСЛИ($A$1:$A$18=$F$3;"";СТРОКА($A$1:$A$18))));СТРОКА(H1)));"")

Есть ли другой способ (с помощью формулы) без массива, но и не макрос, чтобы добиться желаемого результата?

Пример во вложении.

Прикрепленные файлы

  • ТЕСТ.xls (28.5 КБ)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Добавляем формулу для отметки нужных:
=ЕСЛИ(A2<>»»;ЕСЛИ(СЧЁТЕСЛИ($E$2:$E$3;A2)=0;МАКС($B$1:B1)+1))
и подтягиваем обычной ВПР:
=ЕСЛИ(СТРОКА(A1)>$D$1;»»;ИНДЕКС(A:A;ПОИСКПОЗ(СТРОКА(A1);B:B;)))

Прикрепленные файлы

  • список.xls (29.5 КБ)

 

buchlotnik

Пользователь

Сообщений: 3863
Регистрация: 31.10.2014

Excel 365 Бета-канал

#17

14.08.2019 07:47:14

Цитата
Lucien написал:
через формулу. (для автоматизма, так как исходники меняются

а почему для автоматизма не годится PQ?

Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    iskl = Table.Column(Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],"Исключения"),
    filtr = Table.SelectRows(from, each ([Сотрудник] <> null and not List.ContainsAny(Record.ToList(_),iskl)))
in
    filtr

Прикрепленные файлы

  • список.xlsx (17.61 КБ)

Соблюдение правил форума не освобождает от модераторского произвола
<#0>

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Потому что одни забыли формулы, а другие не хотят учить PQ :)

 

buchlotnik

Пользователь

Сообщений: 3863
Регистрация: 31.10.2014

Excel 365 Бета-канал

#19

14.08.2019 10:07:46

Цитата
vikttur написал:
забыли формулы

нет ну ни фига себе — оскорбления на форуме запрещены  :cry:  :cry:  :cry:

Соблюдение правил форума не освобождает от модераторского произвола
<#0>

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Дык, о PQ — это о себе. Равенство и братство :)

 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

#21

14.08.2019 12:03:14

OFF

Цитата
vikttur написал:
Дык, о PQ — это о себе. Равенство и братство

Это я еще с SQL не подкатывал :-)

Код
SELECT Сотрудник
FROM ( SELECT T1.Сотрудник, T2.Исключения
FROM {oj [Лист1$A:A] as T1 LEFT OUTER JOIN [Лист1$E:E] as T2 ON T1.Сотрудник = T2.Исключения}
WHERE (T1.Сотрудник Is Not Null) )
WHERE (Исключения Is Null)

По вопросам из тем форума, личку не читаю.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Еще один скоро пропадет. А если учитывать, что в самокрутке, то это «скоро» настанет еще быстрее )

 

farich_13

Пользователь

Сообщений: 17
Регистрация: 27.11.2017

#23

15.08.2019 00:22:40

vikttur, спасибо, очень крутой вариант. Значительно лучше, чем массив тормознутый.
Но мой перфекционизм и мозг, любящий все сокращать и из за этого усложнять, не дает мне покоя из за дополнительного столбца с порядковыми цифрами и ЛОЖЬю.
Можно, конечно, просто скрыть текст невидимым шрифтом. Но как план Б.
Но осмелюсь спросить, есть вариант обойтись без доп столбца?

Цитата
buchlotnik написал: а почему для автоматизма не годится PQ?

не зашел мне PQ (не отрицаю, что я в нем просто не разобрался), но я больше формулы уважаю.
Спасибо за альтернативу.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#24

15.08.2019 02:44:38

Цитата
farich_13 написал: есть вариант обойтись без доп столбца?

Есть. Он у Вас и раньше был :)
Не всегда короче_меньше = лучше.

 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

farich_13, Подразгогнать формулу можно чуток
=IFERROR(INDEX(A:A;SMALL(IF(($A$2:$A$18<>»»)*ISERROR(MATCH($A$2:$A$18;$E$1:$E$100;));ROW($A$2:$A$18));ROW(A1)));»»)
или
=IF(ROW()<=COUNTIF(A:A;»>»»»)-SUM(COUNTIF(A:A;$E$1:$E$3));INDEX(A:A;SMALL(IF(($A$2:$A$18<>»»)*ISERROR(MATCH($A$2:$A$18;$E$1:$E$100;));ROW($A$2:$A$18));ROW(A1)));»»)
Только на больших объемах будет понятно, что из этого работает быстрее, но разница только в обработке запаса, когда формула должна вернуть пусто.

По вопросам из тем форума, личку не читаю.

 

farich_13

Пользователь

Сообщений: 17
Регистрация: 27.11.2017

Вернулись к массиву.
В общем, решений достаточно. Потестю по скорости, что меня устроит и в практику.

Всем большое спасибо.

 

Добрый день.

Есть очень похожая задача, но подтянуть нужно данные из другого столбца (находящегося слева) адаптировать вышепредложенное не удалось

Прикрепленные файлы

  • Book1.xlsx (18.5 КБ)

 

memo

Пользователь

Сообщений: 1422
Регистрация: 28.02.2018

Excel 2013/2016

#28

22.02.2021 03:36:01

Доброй ночи.

Код
=IFERROR(INDEX($B$9:$B$50;MATCH(AGGREGATE(15;6;COUNTIF($B$9:$B$50; "<"&$B$9:$B$50)/((COUNTIF(F$8:F8; $B$9:$B$50)=0)/($C$9:$C$50=F$8)/($B$9:$B$50<>"")); 1); INDEX(COUNTIF($B$9:$B$50; "<"&$B$9:$B$50);0); 0));"")

Прикрепленные файлы

  • Book1.xlsx (19.74 КБ)

 
memo

, спасибо большое!

Теперь предстоит в этом разобраться.

 

memo

Пользователь

Сообщений: 1422
Регистрация: 28.02.2018

Excel 2013/2016

#30

22.02.2021 12:57:14

Дмитрий Левин,
Та формула отсекает дубликаты и сортирует список. Если этого не требуется, то можно попроще.

Код
=IFERROR(INDEX($B$9:$B$50;AGGREGATE(15;6;ROW($A$1:$A$50)/(($C$9:$C$50=F$8)/($B$9:$B$50<>"")); ROW(A1)));"")

Прикрепленные файлы

  • Book1.xlsx (19.63 КБ)

Изменено: memo22.02.2021 12:57:30

1 / 1 / 0

Регистрация: 09.08.2010

Сообщений: 5

1

Как формуле пропустить пустые ячейки?

09.08.2010, 20:01. Показов 22625. Ответов 2


Студворк — интернет-сервис помощи студентам

Есть столбец «А» с данными, но данные идут не подряд, а вразнобой, т.е. 1 ячека с данными следующие 4 пустые, затем опять с данными, следующие 3 пустые и т.д. закономерности нет. Нужна формула, чтобы например эти данные копировались в соседний столбец «B» и причём без пустот — друг за другом, т.е. формулой можно заполнить весь диапазон столбца «B» и когда появляется в столбце «А» следующее значение, то оно сразу копируется в «B», но только друг за другом без пустых строк.
Заранее спасибо.



0



КотЪ

219 / 219 / 60

Регистрация: 26.05.2009

Сообщений: 688

11.08.2010, 18:51

2

Непонятно, зачем. Если потом с этими данными будет работать какая-то формула, то она просто пропустит пустые ячейки.



0



1 / 1 / 0

Регистрация: 09.08.2010

Сообщений: 5

12.08.2010, 13:25

 [ТС]

3

Цитата
Сообщение от Zabiyak
Посмотреть сообщение

Непонятно, зачем. Если потом с этими данными будет работать какая-то формула, то она просто пропустит пустые ячейки.

На самом деле мне нужен был принцип, всё выглядит несколько сложнее. Я уже нашел решение более подробно это можно узнать на другом форуме:

 Комментарий администратора 
ссылки на посторонние форумы запрещены. если несложно, можно выложить саму суть решения?

Добавлено через 1 час 54 минуты

ссылки на посторонние форумы запрещены. если несложно, можно выложить саму суть решения?

Ух, я думал все форумы програмистов — братья )
Там тема растянулась на пару страничек. Суть такая, что данные в столбце, на листе1, между которыми пустые ячейки, надо чтобы переносились на лист3 подряд без этих самых пустых ячеек.
Решилось всё при помощи массива такого типа:
={ИНДЕКС($A$1:$A$1000;НАИМЕНЬШИЙ(ЕСЛИ($A$1:$A$1000 =»»;66000;СТРОКА($A$1:$A$1000));СТРОКА());1)}



1



Понравилась статья? Поделить с друзьями:
  • Excel пропустить все ошибки в формулах
  • Excel пропадают границы ячеек
  • Excel пропуск строки формулой
  • Excel пропадают вкладки листы
  • Excel пропуск пустых ячеек формула