Как присвоить значение ячейки в excel
Как известно, для полноценной работы с данными (фильтрации, сортировки, подведения итогов и т.д.) нужен непрерывный список, т.е. таблица без разрывов (пустых строк и ячеек - по возможности). На практике же часто мы имеем как раз таблицы с пропущенными пустыми ячейками - например после копирования результатов сводных таблиц или выгрузок в Excel из внешних программ. Таким образом, возникает необходимость заполнить пустые ячейки таблицы значениями из верхних ячеек, то бишь.
из | сделать |
В общем случае, может возникнуть необходимость делать такое заполнение не только вниз, но и вверх, вправо и т.д. Давайте рассмотрим несколько способов реализовать такое.
Способ 1. Без макросов
Выделяем диапазон ячеек в первом столбце, который надо заполнить (в нашем примере, это A1:A12).
Нажимаем клавишу F5 и затем кнопку Выделить (Special) и в появившемся окне выбираем Выделить пустые ячейки (Blanks) :
Не снимая выделения, вводим в первую ячейку знак "равно" и щелкаем по предыдущей ячейке или жмём стрелку вверх (т.е. создаем ссылку на предыдущую ячейку, другими словами):
И, наконец, чтобы ввести эту формулу сразу во все выделенные (пустые) ячейки нажимаем Ctrl + Enter вместо обычного Enter . И все! Просто и красиво.
В качестве завершающего мазка я советовал бы заменить все созданные формулы на значения, ибо при сортировке или добавлении/удалении строк корректность формул может быть нарушена. Выделите все ячейки в первом столбце, скопируйте и тут же вставьте обратно с помощью Специальной вставки (Paste Special) в контекстом меню, выбрав параметр Значения (Values) . Так будет совсем хорошо.
Способ 2. Заполнение пустых ячеек макросом
Если подобную операцию вам приходится делать часто, то имеем смысл сделать для неё отдельный макрос, чтобы не повторять всю вышеперечисленную цепочку действий вручную. Для этого жмём Alt + F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , чтобы открыть редактор VBA, затем вставляем туда новый пустой модуль через меню Insert - Module и копируем или вводим туда вот такой короткий код:
Как легко можно сообразить, этот макрос проходит в цикле по всем выделенным ячейкам и, если они не пустые, заполняет их значениями из предыдущей ячейки.
Для удобства, можно назначить этому макросу сочетание клавиш или даже поместить его в Личную Книгу Макросов (Personal Macro Workbook), чтобы этот макрос был доступен при работе в любом вашем файле Excel.
Способ 3. Power Query
Power Query - это очень мощная бесплатная надстройка для Excel от Microsoft, которая может делать с данными почти всё, что угодно - в том числе, легко может решить и нашу задачу по заполнению пустых ячеек в таблице. У этого способа два основных преимущества:
- Если данных много, то ручной способ с формулами или макросы могут заметно тормозить. Power Query сделает всё гораздо шустрее.
- При изменении исходных данных достаточно будет просто обновить запрос Power Query. В случае использования первых двух способов - всё делать заново.
Для загрузки нашего диапазона с данными в Power Query ему нужно либо дать имя (через вкладку Формулы - Диспетчер имен), либо превратить в "умную" таблицу командой Главная - Форматировать как таблицу (Home - Format as Table ) или сочетанием клавиш Ctrl + T :
После этого на вкладке Данные (Data) нажмем на кнопку Из таблицы / диапазона (From Table/Range) . Если у вас Excel 2010-2013 и Power Query установлена как отдельная надстройка, то вкладка будет называться, соответственно, Power Query.
В открывшемся редакторе запросов выделим столбец (или несколько столбцов, удерживая Ctrl ) и на вкладке Преобразование выберем команду Заполнить - Заполнить вниз (Transform - Fill - Fill Down) :
Вот и всё :) Осталось готовую таблицу выгрузить обратно на лист Excel командой Главная - Закрыть и загрузить - Закрыть и загрузить в. (Home - Close&Load - Close&Load to. )
В дальнейшем, при изменении исходной таблицы, можно просто обновлять запрос правой кнопкой мыши или на вкладке Данные - Обновить всё (Data - Refresh All) .
Подстановка значений из одной ячейки в другую, при определенном значении в третьей ячейке
Всем добрый день! Прошу о помощи грамотно составить макрос. Требуется грубо говоря следующее: .
Как автоматически скопировать строчку на другой лист при определенном значении ячейки
Всем привет! Как сделать так, что если на "листе1" ячейка в определенном столбце принимает.
Как присвоить ячейке значение другой ячейки, у которой известны координаты
помогите, пожалуйста, начинающему необходимо присвоить значение ячейки, у которой известны.
Как присвоить ячейке значение другой ячейки с весьма неординарным условием?
Я пронумерую ячейки. Как присвоить ячейке№1 значение другой ячейки№2 из той же строки, в которой.
Вроде бы нашел способ, трудный, но все же :
Там где "***" вставляю следующую функция ЕСЛИ для следующего значения в ячейке C2 . Если кто знает как сократить формулу подскажите, а то значений в ячейке C2 около 800 штук. Мой уровень = 5-у классу.
Подскажите что это такое и с чем его едят ? BateL, без файла могу только предложить почитать встроенную справку без файла могу только предложить почитать встроенную справку Во-первых, выкладывайте файл на форум
Во-вторых, объясните внятно что надо получить в итоге. Во-первых, выкладывайте файл на форум
Во-вторых, объясните внятно что надо получить в итоге. файл слишком велик для форума.
Нужно сделать такую же таблицу,как на 2, 3 или 4-м листке (названия листков соответственно : "opp 530 ni"opp053" "lpp 030". Такую же таблицу но в либре офис ладно спс за помощь.
пока так и буду пользоваться "ЕСЛИ"
и изучу :
При значении ячеек в столбце А присвоить определенное значение ячейкам в столбце B
Столкнулся с тем, что мне нужно при значении ячеек в столбце А присвоить определенное значение.
Значение одной ячейки первого StringGrid-а присвоить другой ячейке второго StringGrid-а
скажите пожалуйста, вот нам даны две таблицы stringgrid, как значение одной ячейки,первой таблицы.
Вычислить значение аргумента при определенном значении функции
Добрые люди, подскажите, как найти максимум функции |K(w)| и значение w в точке |K(w)|/sqrt(2) ?
Вывод значения в ячейку при определенном условии в другой ячейке
Ячейка А1 должна выводить значение "a" при ячейке B1 = "1" либо "2", значение "b" при "3" либо.
Вопрос по адресации в Excel: как получить данные из ячейки, адрес которой указан в другой ячейке?
Доброго дня всем. Тут такое дело - в ячейке, к примеру А1 лежит номер столбца, а в ячейке А2 -.
Как присвоить значение ячейки одного листа и поставить ее в другой лист
Подскажите пожалуйста! Как присвоить значение ячейки одного листа и поставить ее в другой лист .
Как присвоить переменной имя ячейки ексель по которой кликнул пользователь
Здравствуйте. Известно только то что пользователь обязательно кликнет по ячейке после того как.
Давайте воспользуемся свойствами и методом об'екта Range
- Value
- Offset
- Select
Если нам известны номер строки и номер столбца и
под другой мы подразумеваем любую ячейку, то
Примечание :
ActiveCell - активная ячейка рассматривается только в качестве 'наглядного пособия' и может быть заменена на любой другой вариант обращения к ячейке.
На самом деле можно обойтись и без явного использования Value, Offset с тем же результатом
P.S. Если Вам нужно перейти к следующей в строке ячейке, то можно использовать :
Если iRow = 256, то получите ошибку (*)
Прощу прощения за опечатку, правильный вариант :Если iClm = 256, то получите ошибку (*) А если ячейка, в которую надо внести значение, находится на другом листе? Для присваивания в строке 3 ячейке в колонке 2 значения ячейки в колонке 1 можно написать:
Последнее работает даже если установлен стиль ссылок R1C1
- можно обойтись и без явного использования Value с тем же результатом
- имя листа можно заменить на переменную
- вместо Worksheets можно использовать Sheets
- сократить код можно, если использовать With или Set
Предполагается , что:
iRow - это номер строки
iClm - это номер столбца
'Лист1', 'Лист2' - это имя рабочих листов
1, 2 - это индекс (номер) рабочего листа в семействе Worksheets
Лист1, Лист2 - это имя рабочих листов в среде VBA, не путайте с именем рабочего листа, отображаемого на ярлычке
To palva
Прежде чем дополнять чужие ответы, неплохо для начала
внимательно его прочитать
>ActiveCell - активная ячейка рассматривается только в >качестве 'наглядного пособия' и может быть заменена на любой другой >вариант обращения к ячейке.
>На самом деле можно обойтись и без явного использования Value, >Offset с тем же результатом
>ActiveCell = Cells(iRow, iClm)
Cells(3, 2) = Cells(3, 1)
Разве это не клон моего ответа .
А второй вариант в контексте данного случая не может
быть применим, так как в начальных условиях, задано, что известны координаты ячейки, т.е. номер ячейки и номер столбца, а не её адрес.
Хотя этот способ я, как и Вы, тоже использую, но .
>Последнее работает даже если установлен стиль ссылок R1C1
А, что остальные варианты при стиле R1C1 не работают .
> Cells(3, 2) = Cells(3, 1)
> Разве это не клон моего ответа .
Конечно, клон. Я подумал, что это будет понятнее, поскольку является прямым ответом на вопрос топика.
> А второй вариант в контексте данного случая не может быть применим, так как в начальных условиях, задано, что известны координаты ячейки, т.е. номер ячейки и номер столбца, а не её адрес.
Если координаты ячейки вычисляются в макросе или являются переменными, то, конечно, проще использовать Cells. Если координаты ячейки постоянны, то можно заранее преобразовать их в адрес и использовать в макросе более короткую запись. Хотя ячейкам с постоянным адресом логичнее дать имя, например, 'CursEvro' и получать значение так: [CursEvro]
>>Последнее работает даже если установлен стиль ссылок R1C1
>А, что остальные варианты при стиле R1C1 не работают .
Работают, но это написано под впечатлением странной несимметричной ситуации: Когда стиль R1C1 установлен, то можно написать [J10] = [R20C12], то есть рабоают оба способа адресации. А когда стиль R1C1 НЕ установлен, то [J10] работает, а [R20C12] - нет.
Извините, я не хотел вас уязвить. Я больше думал об авторе вопроса и боялся, что ваш ответ будет для него слишком замысловатым.
>Извините, я не хотел вас уязвить. Я больше думал об авторе вопроса и боялся, что ваш ответ будет для него слишком замысловатым.
ActiveCell.Value = Cells(3, 1).Value
Примечание :
- ActiveCell - можно заменить на другой способ обращения к ячейке
- Value - можно убрать
После прочтения этого примечания, человек должен сам произвести некоторые действия, для самостоятельного закрепления материала.
т.е. заменить ActiveCell на Cells(1, 1) и убрать Value
> Cells(3, 2) = Cells(3, 1)
А появление подобного кода, может рассматриваться как сомнение в умственных способностях человека.
Кстати, если этот топик читают преподаватели, то они смогут подтвердить наличие подобной методики.
Приплюсовывание числа одной ячейки как минут к другой ячейке
Формат ячеек столбца B - часы:минуты. Задача стоит такая: ввожу в ячейку столбца C от руки число.
Как присвоить значение текущей ячейке в VBA?
Добрый день Подскажите пожалуйста как реализовать такой механизм Private Sub.
Как задать значение для ячейки в зависимости от значения другой ячейки
Здравствуйте! Подскажите, как задать значение для ячейки в зависимости от значения другой ячейки.
Excel: как зафиксировать в определённой ячейке, какие-то меняющиеся значения из другой ячейки?
Имеются следующие условия: Файл Exсelа (2003) завязан с другой программой. Из этой программы идёт.
Иногда, чтобы выполнить определенные действия или просто для удобства, в Excel требуется присвоить отдельным ячейкам или диапазонам ячеек конкретные имена для их дальнейшей идентификации. Давайте разберемся, как можно выполнить данную задачу.
Требования к именам ячеек
В программе процедура назначения ячейкам имен выполняется с помощью нескольких методов. Но при этом есть определенные требования к самим названиям:
-
Нельзя использовать пробелы, запятые, двоеточия, точки с запятыми в качестве разделителя слов (выходом из ситуации может быть замена на нижнее подчеркивание или точку).
Примечание: Если для ячейки (диапазона ячеек) задано какое-то имя, именно оно будет использоваться в качестве ссылки, например, в формулах.
Допустим, ячейке B2 присвоено имя “Продажа_1”.
Если она будет участвовать в формуле, то вместо B2 мы пишем “Продажа_1”.
Нажав клавишу Enter убеждаемся в том, что формула, действительно, рабочая.
Теперь перейдем, непосредственно, к самим методам, пользуясь которыми можно задавать имена.
Метод 1: строка имен
Пожалуй самый простой способ присвоить имя ячейке или диапазону – ввести требуемое значение в строке имен, которое находится слева от строки формул.
Примечание: при присвоении названия любым из способов ниже, оно также будет показываться в строке имен.
Метод 2: использование контекстного меню
Использование контекстного меню в Эксель позволяет выполнить популярные команды и функции. Присвоить имя ячейке также можно через этот инструмент.
- Как обычно, для начала нужно отметить ячейку или диапазон ячеек, с которыми хотим выполнить манипуляции.
- Затем правой кнопкой мыши щелкаем по выделенной области и в открывшемся перечне выбираем команду “Присвоить имя”.
- На экране появится окно, в котором мы:
- пишем имя в поле напротив одноименного пункта;
- значение параметра “Поле” чаще всего остается по умолчанию. Здесь указывается границы, в которых будет идентифицироваться наше заданное имя – в пределах текущего листа или всей книги.
- В области напротив пункта “Примечание” при необходимости добавляем комментарий. Параметр не является обязательным для заполнения.
- в самом нижнем поле отображаются координаты выделенного диапазона ячеек. Адреса при желании можно отредактировать – вручную или с помощью мыши прямо в таблице, предварительно установив курсор в поле для ввода информации и стерев прежние данные.
- по готовности жмем кнопку OK.
- Все готово. Мы присвоили имя выделенному диапазону.
Метод 3: применение инструментов на ленте
Конечно же, присвоить имя ячейкам (области ячеек) можно и с помощью специальных кнопок на ленте программы.
Метод 4: работа в Диспетчере имен
Данный способ предполагает использование такого инструмента как Диспетчер имен.
Заключение
Присвоение имени отдельной ячейке или диапазону ячеек в Эксель – не самая распространенная операция и используется редко. Однако в некоторых случаях перед пользователем встает такая задача. Сделать это в программе можно различными способами, и можно выбрать тот, что больше нравится и кажется наиболее удобным.
Читайте также: