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
1 / 1 / 0 Регистрация: 09.08.2010 Сообщений: 5 |
|
1 |
|
Как формуле пропустить пустые ячейки?09.08.2010, 20:01. Показов 22634. Ответов 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 |
||||
Непонятно, зачем. Если потом с этими данными будет работать какая-то формула, то она просто пропустит пустые ячейки. На самом деле мне нужен был принцип, всё выглядит несколько сложнее. Я уже нашел решение более подробно это можно узнать на другом форуме:
Добавлено через 1 час 54 минуты ссылки на посторонние форумы запрещены. если несложно, можно выложить саму суть решения? Ух, я думал все форумы програмистов — братья )
1 |
Lucien Пользователь Сообщений: 11 |
Здравствуйте знатоки. Прикрепленные файлы
Изменено: Lucien — 13.05.2015 13:13:42 |
JeyCi Пользователь Сообщений: 3357 |
#2 12.05.2015 20:50:55 увеличьте диапазон до А16(весь исходник)
Изменено: JeyCi — 12.05.2015 20:51:41 чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах) |
||
Lucien Пользователь Сообщений: 11 |
О, Благодарю! Теперь сработало. Раньше через CTRL+SHIFT+ENTER пытался запустить, но не получалось. Спасибо за быстрый ответ. |
Lucien Пользователь Сообщений: 11 |
И ещё вопросик. В формуле какой-то странный параметр, куда-то вбок направлен. Он нужный или его можно как-то удалить? (этот вопрос решён) Изменено: Lucien — 13.05.2015 17:45:15 |
V Пользователь Сообщений: 5018 |
#5 13.05.2015 17:03:01
это ни чего не даст, почитайте про ф-цию СТРОКА в справке. |
||
Lucien Пользователь Сообщений: 11 |
Благодарю за ответ. Решение уже сам увидел. А про параметр «СТРОКА» можете сказать? Или просто исправить и всё. Спасибо. Изменено: Lucien — 13.05.2015 17:44:43 |
V Пользователь Сообщений: 5018 |
#7 13.05.2015 17:08:36 лучше использовать такую формулу
чем использовать ДВССЫЛ |
||
V Пользователь Сообщений: 5018 |
#8 13.05.2015 17:10:35
можете его не трогать, то что он сылается на ячейку гдето сбоку не страшно главное чтобы на ячейку в первой строке для первой формулы. |
||
Lucien Пользователь Сообщений: 11 |
Благодарю за понятные ответы. Попробую использовать рекомендованную формулу. |
Lucien Пользователь Сообщений: 11 |
Оказалось что ячейка не совсем пустая, а с формулой. Как сделать чтобы массив срабатывал от значения «пусто» с формулой внутри? |
V Пользователь Сообщений: 5018 |
#11 13.05.2015 20:13:42
|
||
Lucien Пользователь Сообщений: 11 |
Спасибо Большое. Что бы я без умных людей делал… |
farich_13 Пользователь Сообщений: 17 |
#13 10.08.2019 11:36:38
всем доброе утро. делаю вот так (в примере мои ячейки):
Что-то не так, подскажите, почему выдает ошибку: Прикрепленные файлы
Изменено: farich_13 — 13.08.2019 16:37:34 |
||||
artyrH Пользователь Сообщений: 2054 |
farich_13, может достаточно добавить еще одну скобку в — 18)));СТР |
farich_13 Пользователь Сообщений: 17 |
#15 14.08.2019 01:03:33 спасибо. помогло. может в продолжении темы подскажет кто-то: необходимо из столбца подтягивать значения, пропуская пустые ячейки и ячейки со значениями-исключениями. На основе этой ветки удалось сделать это с помощью массива. Но большой минус массива в том, что он долго считает и заметно уменьшает скорость работы самой программы Эксель когда значений много. Вот, что получилось в итоге:
Есть ли другой способ (с помощью формулы) без массива, но и не макрос, чтобы добиться желаемого результата? Пример во вложении. Прикрепленные файлы
|
||
vikttur Пользователь Сообщений: 47199 |
Добавляем формулу для отметки нужных: Прикрепленные файлы
|
buchlotnik Пользователь Сообщений: 3863 Excel 365 Бета-канал |
#17 14.08.2019 07:47:14
а почему для автоматизма не годится PQ?
Прикрепленные файлы
Соблюдение правил форума не освобождает от модераторского произвола |
||||
vikttur Пользователь Сообщений: 47199 |
Потому что одни забыли формулы, а другие не хотят учить PQ |
buchlotnik Пользователь Сообщений: 3863 Excel 365 Бета-канал |
#19 14.08.2019 10:07:46
нет ну ни фига себе — оскорбления на форуме запрещены Соблюдение правил форума не освобождает от модераторского произвола |
||
vikttur Пользователь Сообщений: 47199 |
Дык, о PQ — это о себе. Равенство и братство |
БМВ Модератор Сообщений: 21383 Excel 2013, 2016 |
#21 14.08.2019 12:03:14 OFF
Это я еще с SQL не подкатывал
По вопросам из тем форума, личку не читаю. |
||||
vikttur Пользователь Сообщений: 47199 |
Еще один скоро пропадет. А если учитывать, что в самокрутке, то это «скоро» настанет еще быстрее ) |
farich_13 Пользователь Сообщений: 17 |
#23 15.08.2019 00:22:40 vikttur, спасибо, очень крутой вариант. Значительно лучше, чем массив тормознутый.
не зашел мне PQ (не отрицаю, что я в нем просто не разобрался), но я больше формулы уважаю. |
||
vikttur Пользователь Сообщений: 47199 |
#24 15.08.2019 02:44:38
Есть. Он у Вас и раньше был |
||
БМВ Модератор Сообщений: 21383 Excel 2013, 2016 |
farich_13, Подразгогнать формулу можно чуток По вопросам из тем форума, личку не читаю. |
farich_13 Пользователь Сообщений: 17 |
Вернулись к массиву. Всем большое спасибо. |
Добрый день. Есть очень похожая задача, но подтянуть нужно данные из другого столбца (находящегося слева) адаптировать вышепредложенное не удалось Прикрепленные файлы
|
|
memo Пользователь Сообщений: 1423 Excel 2013/2016 |
#28 22.02.2021 03:36:01 Доброй ночи.
Прикрепленные файлы
|
||
memo
, спасибо большое! Теперь предстоит в этом разобраться. |
|
memo Пользователь Сообщений: 1423 Excel 2013/2016 |
#30 22.02.2021 12:57:14 Дмитрий Левин,
Прикрепленные файлы
Изменено: memo — 22.02.2021 12:57:30 |
||
history 24 апреля 2013 г.
- Группы статей
- Вывод отобранных значений в отдельный диапазон
- Отбор строк в таблице
- Пустые ячейки
Если список значений содержит пропуски (пустые ячейки), то это может существенно затруднить его дальнейший анализ. С помощью формул уберем пустые ячейки из колонки с данными. Также напишем формулу, чтобы удалить нули из списка значений. В конце статьи научимся удалять вообще любое заданное значение из списка: символ, число, текстовую строку.
Пусть имеется список с
пустыми
ячейками (столбец
А
).
Задача
Убрать пустые ячейки из списка, сформировав формулами список в соседнем столбце. То есть под словом «убрать» будем понимать не удаление значения из исходного списка, а формирование еще одного списка, но уже без лишних символов. Чтобы действительно убрать значения из списка нужно использовать макросы — программу на VBA.
Решение
Для избавления от пустых ячеек запишем в ячейке
B2
формулу массива
и скопируем ее вниз (см. файл примера): =ЕСЛИОШИБКА(ДВССЫЛ(«A»&НАИМЕНЬШИЙ(ЕСЛИ(ЕПУСТО($A$2:$A$14);»»;СТРОКА($A$2:$A$14));СТРОКА(A1)));»»)
Получим в соседнем столбце
B
список со значениями из исходого, но уже без пропусков. Формула работает одинакового и для текстовых значений и для чисел. Алгоритм работы формулы следующий:
-
ЕСЛИ(ЕПУСТО($A$2:$A$14);»»;СТРОКА($A$2:$A$14)) – если ячейка не пуста, то эта часть формулы возвращает номер строки. То есть формируется массив номеров строк, НЕ содержащих пустоты {2:»»:4:5:6:»»:»»:9:10:»»:»»:13:14} На месте пустых ячеек в массиве будет символ «» (пустой текст), но можно его заменить в формуле на любую текстовую строку, например «ккк». Проверить результат можно выделив эту часть формулы и нажав
клавишу
F9
; - Функция НАИМЕНЬШИЙ() сортирует массив строк по возрастанию. В сортированном списке сначала будут идти номера строк затем значения «», т.к. в EXCEL считается, что любое текстовое значение больше любого числа (значение пустой текст — текстовое значение);
-
Далее для функции ДВССЫЛ() формируются адреса ячеек с непустыми значениями. Например, ДВССЫЛ(«A»&2) возвращает значение из ячейки
А2
. Для пустых ячеек будет формироваться ошибочные адреса ячеек, состоящие только из символа А. Это вызовет ошибку после применения функции ДВССЫЛ(); - Функция ЕСЛИОШИБКА() вместо ошибки будет возвращать «». Этот символ не отображается в ячейке и ячейка выглядит пустой.
На самом деле в соседнем столбце
B
список будет отличаться не только тем, что в нем значения будут идти подряд без пропусков. Если в исходном списке пустые ячейки действительно не содержали ничего, то в новом списке в пустых ячейках будут значения Пустой текст «». Хотя внешний вид пустых ячеек из обоих списков будет неотличим, но формулы увидят разницу. То есть, если Вы планируете делать дальнейшие манипуляции с новым списком, то имейте ввиду, что теперь пустые ячейки в конце списка теперь не совсем пусты — они содержат текстовое значение «». Подробнее про это специфическое значение читайте
здесь
.
Изменим немного формулу: =ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ( ЕПУСТО($A$2:$A$14);»»;$A$2:$A$14);СТРОКА(A1));»»)
Получим тот же список, но еще и
сортированный
по возрастанию (работает только для чисел).
Список также можно сформировать в столбце С другой
формулой массива
:
=ЕСЛИОШИБКА(ДВССЫЛ(«A»&НАИМЕНЬШИЙ(ЕСЛИ(ЕПУСТО(СписокСпропусками);»»;СТРОКА(СписокСпропусками));СТРОКА()-СТРОКА($C$1)));»»)
СписокСпропусками
в формуле — это
динамический диапазон
, который образован формулой:
=СМЕЩ($A$2;;;ДлинаСпискаСпропусками)
Длину списка с пропусками
можно вычислить с помощью формулы:
=ПОИСКПОЗ(ПОВТОР(«я»;10);$A$2:$A$14;1)
СОВЕТ:
Для удаления и выделения пустых строк и ячеек традиционными средствами EXCEL, пользуйтесь идеями из статей
Удаляем пустые строки в таблице
и
Выделение группы ячеек
. О том, что EXCEL понимает под пустыми ячейками, читайте в статье
Подсчет пустых ячеек
.
Удаляем заданные символы из списка
Часто в списке присутствуют ненужные для дальнейшего анализа значения, например 0 (нуль).
Немного модернизировав вышеуказанную формулу получим универсальный подход для удаления вообще любого символа, числа или текстовой строки из исходного списка (см. файл примера, в котором на листе Произвольный символ приведена универсальнаяформула).
Пусть исходный список находится в диапазоне A12:A24, а в ячейке B6 содержится значение которое нужно удалить из ячеек списка.
=ЕСЛИОШИБКА(ДВССЫЛ(«A»&НАИМЕНЬШИЙ(ЕСЛИ($A$12:$A$24=$B$6;»»;СТРОКА($A$12:$A$24));СТРОКА()-СТРОКА($A$11)));»»)
Единственным отличием является выражение $A$12:$A$24=$B$6, которое заменило формулу с ЕПУСТО(…)
Теперь если значение в исходном списке не равно искомому значению, то вместо него будет выведено значение «» (в конце списка).
Есть столбец «А» с данными, но данные идут не подряд, а вразнобой, т.е. 1 ячека с данными следующие 4 пустые, затем опять с данными, следующие 3 пустые и т.д. закономерности нет. Нужна формула, чтобы например эти данные копировались в соседний столбец «B» и причём без пустот — друг за другом, т.е. формулой можно заполнить весь диапазон столбца «B» и когда появляется в столбце «А» следующее значение, то оно сразу копируется в «B», но только друг за другом без пустых строк.
Заранее спасибо.
Данные текстовые или числовые? Возможен ли перенос в отсортированном порядке (если числа)?
Webmoney: E350157549801 Z116603216205 R268084006579
Это проделать хотелось бы с датой и со значениями формул. Т.е. если точнее, то колонка с датами (они в разнобой), напротив этих дат ячейки со значениями получаемых в результате формул (они параллельны датам)
«А» «D»
дата формула
3 пустые строки
дата формула
4 пустые строки
дата формула
и т.д.
Нужно что бы они попадали на другой лист, все вместе в этом же порядке, но без пустых строк:
«А» «B»
дата значение взятое из формулы на первом листе
дата значение взятое из формулы на первом листе
дата значение взятое из формулы на первом листе
или так — ставим фильтр на колонку А раскрываем фильтр, убираем галочку «Выделить все» идем вниз списка фильтра, ставим галочку у «пустые», нажимаем OK выделяем все строки и из контекстного меню вызываем «удалить строку». Все пустые строки при этом будут удалены.
На первом листе с данными:
«А» «D»
дата формула
3 пустые строки
дата формула
4 пустые строки
дата формула
трогать и удалять пустые строки нельзя, дело в том что они не совсем пустые — между колонками «А», «D» есть ещё колонки «B» и «C», а они не пустые, ячейки которые пусты, они пусты, только в колонках «А» и «D». Фильтр тут не поможет, данные нужны на другом листе идущие без пустых ячеек не для того чтобы их лицезреть, а там будет целая таблица расчётов, колонки «А» и «С» на другом листе будут являться началом таблицы.
http://narod.ru/disk/23582366000/home.zip.html
Прилагаю файл, участвуют в выше сказанном «Лист1» и «Лист3». В этом файле много не решенных задач и вопросов куча, но этот на данный момент самый приоритетный. Решил как-то дозировано разобраться. Сразу скажу — это не для учёбы и каких-то там курсовых
Пытаюсь понять принцип работы формулы. Вроде прикольно, но дополнительный столбец очень не кстати, получается его ещё нужно ручками забивать числами на единицу большими предыдущей даты.
На листе3 пытался формулу распространить на весь столбец — не выходит. Не могу понять — почему?
С помощью небольшого макроса попробуйте
Не торопись, и все успеешь намного быстрее
Я использую такую формулу массива:
={ИНДЕКС($A$1:$A$1000;НАИМЕНЬШИЙ(ЕСЛИ($A$1:$A$1000=»»;66000;СТРОКА($A$1:$A$1000));СТРОКА());1)}
На картинке видно что и где…
Да и формула выдает #ССЫЛКА!, когда заканчиваются исходные данные и далее идут одни пустые ячейки, можно в самой формуле это предусмотреть (тогда она станет больше), но мне, например, проще удалить ошибки. В пользу производительности т.с.
Цитата: lema от 10.08.2010, 10:40
Пытаюсь понять принцип работы формулы. Вроде прикольно, но дополнительный столбец очень не кстати, получается его ещё нужно ручками забивать числами на единицу большими предыдущей даты.
На листе3 пытался формулу распространить на весь столбец — не выходит. Не могу понять — почему?
Цитата: sergo44441 от 10.08.2010, 10:54
С помощью небольшого макроса попробуйте
вообщето на листе 1 незнаю зачем написал еще условие с если
там просто можно СЧЕТЗН()
а вот что значит распространить на весь столбец? ну берем и копируем. если значение не найдено возвращается ошибка, которую можно скрыть с помощью ЕСЛИОШИБКА (2007 офис) или ЕОШИБКА (2003)
а там смотрите сами
Цитироватьа вот что значит распространить на весь столбец
Да мелочь — в смысле выделяю ячейку с формулой, затем выделяю весь столбец и вставляю — получается одинаковая дата во всех столбцах, а если выделил формулу и вставил ручками в выбранное кол-во ячеек(которые ниже идут) то всё нормально. Кстати, оказывается достаточно в первом столбце только напротив даты цифры ставить, а это уже здорово. Я грешным делом подумал, что до следующей даты всё забито должно быть одинаковой цифрой.
Сейчас «поиграюсь» с тем что уважаемый Василий написал. Посмотрю что получится
Выложите картинку с примером, как формула должна считать, выделите цветом диапазон, который она должна просуммировать.
А это из файла который я выложил выше:
«D2» считает сумму С3:С6 и далее по такому же принципу. В колонке D хотелось размножить некую формулу на весь столбец. Количество значений в колонке С всё время разное, т.е. не стабильно. Вот вбиваю я значения ручками в колонке С, а в ячейке точно напротив даты в колонке D (те что помечены голубым) выводится их сумма. Диапазон получается почти всё время разный (до пустой ячейки). Обычно приходится становится в ячейку голубую, нажимать сумму и выделять диапазон — всё руками.
С помощью макроса можно такое сделать
Не торопись, и все успеешь намного быстрее
Цитата: sergo44441 от 10.08.2010, 17:50
С помощью макроса можно такое сделать
Да я вних ни чего не смыслю, думал за счёт формул. Макросы даже когда пишут на форумах, я не знаю куда их пихать и что сними делать
а с помощью формул массива — вот так.
Если же Вы решитесь заменить пробелы между рядами чисел любым наперед известным символом, то формулу можно будет еще больше упростить и отказаться от необходимости использовать формулу-массива — можно будет использовать функцию ПОИСКПОЗ(Символ,СМЕЩ(…),0)
P.S. Да, у функции есть ограничение — если ряд чисел может быть более 100, то в функцию необходимо внести корректировку в этом месте: ДВССЫЛ(«1:100«)
Т.е. в ручную придётся какой-то символ параллельно вбивать? Если так то получается + на —
Не шибко это прибавит функциональности. Или я недопонял?
Такой вариант:
=ЕСЛИ((B1=»»)*(B2<>»»);СУММ(B2:ИНДЕКС(B2:B100;ПОИСКПОЗ(«»;B2:B100&»»;)));»»)
Массив
Webmoney: E350157549801 Z116603216205 R268084006579
Цитата: kimtan от 11.08.2010, 01:23
Такой вариант:
=ЕСЛИ((B1=»»)*(B2<>»»);СУММ(B2:ИНДЕКС(B2:B100;ПОИСКПОЗ(«»;B2:B100&»»;)));»»)
В точку! Только в моём варианте если точно, вот так выглядит:
{=ЕСЛИ((C2=»»)*(C3<>»»);СУММ(C3:ИНДЕКС(C3:C100;ПОИСКПОЗ(«»;C3:C100&»»;)));»»)}
Всё чётко работает.
Спасибо большое!