sonyps4.ru

Как объединить ячейки в excel без потери данных. Объединение ячеек

Иногда эксель удивляет своими требованиями делать что-то через э… макросы. Вот недавно, встала задача разбить несколько объединенных ячеек по одной, чтобы можно было нормально отсортировать весь диапазон. Думаю, никому не надо объяснять, как просто убрать объединение ячеек, разбив их по одной (я имею ввиду формат-выравнивание-убрать галку с «объединение ячеек»). Но, к сожалению, эксель обладает очень интересным свойством при отмене объединения ячеек не спрашивать, как именно мы хотели бы их вернуть в нормальное, разъединенное состояние, а тупо пишет в верхнюю левую ячейку значение, которое было в объединенной, а все остальные ячейки оставляет незаполненными. Ну, естественно, ни о какой нормальной сортировке по прежде объединенным ячейкам говорить не приходится. И хорошо бы их было всего штук 200-300. А если их шестьдесят тысяч, разбитых на группы по 10 ячеек? Вручную шесть тысяч значений потом копировать в оставшиеся пустыми ячейки?

Типичная картина — хотим отсортировать список пофамильно, чтобы Кузнецов шел все-таки после Иванова. Пример, разумеется, очень упрощенный.

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

А нам то надо, чтобы в каждой ячейке было соответствующее значение, иначе при сортировке получится черти что!

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

  • разгруппировать ячейки выделенного диапазона с заполнением

Проверил все, работают отлично. Код самого простого, как показавшего отличнейшие результаты, хочу разместить и здесь. На всякий случай, если вдруг пропадет с исходной страницы, ссылку на которую я привел выше.

Итак, создаем макрос с кодом:

ABAP

Sub UnMerge_And_Fill_By_Value() " разгруппировать все ячейки в Selection и ячейки каждой бывшей группы заполнить значениями из их первых ячеек Dim Address As String Dim Cell As Range If TypeName(Selection) <> "Range" Then Exit Sub End If If Selection.Cells.Count = 1 Then Exit Sub End If Application.ScreenUpdating = False For Each Cell In Intersect(Selection, ActiveSheet.UsedRange).Cells If Cell.MergeCells Then Address = Cell.MergeArea.Address Cell.UnMerge Range(Address).Value = Cell.Value End If Next End Sub

SubUnMerge_And_Fill_By_Value () "разгруппироватьвсеячейкивSelectionиячейкикаждойбывшейгруппызаполнитьзначениямиизихпервыхячеек

DimAddressAs String

DimCellAs Range

If TypeName (Selection) & lt ; & gt ; "Range" Then

Exit Sub

EndIf

If Selection. Cells. Count = 1 Then

Exit Sub

EndIf

Application. ScreenUpdating= False

For EachCellIn Intersect (Selection, ActiveSheet. UsedRange) . Cells

If Cell. MergeCellsThen

Address= Cell. MergeArea. Address

Cell. UnMerge

Range (Address) . Value = Cell. Value

EndIf

Next

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

Только не надо забывать, что после выполнения макроса, отменить эту операцию нельзя. Поэтому лучше работать с копией таблицы.

Ну и если, уже после того, как ячейки будут пересортированы, потребуется снова объединить ячейки с одинаковыми значениями (забудем на минуту, что объединенные ячейки — это зло, т.к. в случае, если требуется визуальная наглядность — то без них не обойтись), то нам опять придется использовать макрос. В интернете ссылок куча — но у меня заработал только один .

Тоже на всякий случай приведу код:

ABAP

Sub MergeCls() Dim ri As Integer, r2 As Integer, Col As Integer r1 = ActiveCell.Row r2 = ActiveCell.Row Col = ActiveCell.Column Do If Cells(r1, Col) <> Cells(r2 + 1, Col) Then If r1 <> r2 Then Range(Cells(r1 + 1, Col), Cells(r2, Col)).ClearContents With Range(Cells(r1, Col), Cells(r2, Col)) .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With End If r1 = r2 + 1 End If r2 = r2 + 1 Loop Until Cells(r2, Col) = "" End Sub

SubMergeCls ()

DimriAs Integer, r2As Integer, ColAs Integer

r1= ActiveCell. Row

r2= ActiveCell. Row

Col= ActiveCell. Column

If Cells (r1, Col) & lt ; & gt ; Cells (r2+ 1 , Col) Then

If r1& lt ; & gt ; r2Then

Range (Cells (r1+ 1 , Col) , Cells (r2, Col) ) . ClearContents

With Range (Cells (r1, Col) , Cells (r2, Col) )

Ячейки, образующие прямоугольник (соприкасающиеся между собой хотябы одной из сторон) можно объединять в одну большую ячейку, имеющую общий формат. Объединять ячейки можно как стандартными средствами Excel, так и с использованием макросов и надстроек. При объединении ячеек с данными стандартными способами информация ячеек заменяется текстом верхней левой ячейки объединяемого диапазона. Использование макросов и надстроек позволяет существенно ускорить и упростить этот вид операций, а также сохранить значения всех объединяемых ячеек.

Объединение ячеек в Excel без потери данных

При объединении ячеек (как пустых, так и содержащих данные) ускоряет и упрощает работу использование VBA-надстроек для Excel, позволяющих в указанном диапазоне объединять ячейки по строкам, по столбцам, а также с заданным шагом и без потери текста. Существуют готовые решения задач, связанных с объединением ячеек.

Быстрое объединение ячеек в Excel надстройкой

Еще более гибкий вариант надстройки позволяет сохранять текст объединяемых ячеек, разделяя его знаком-разделителем, то есть объединяет ячейки без потери данных. Ниже представлено диалоговое окно этой надстройки.

Использование надстройки позволяет:

1. Одним кликом мыши вызывать диалоговое окно макроса прямо из панели инструментов Excel;

2. объединять ячейки по строкам;

3. объединять ячейки по столбцам;

4. при объединении ячеек с текстом, сохранять текстовые данные всех объединяемых ячеек;

5. выбирать на свое усмотрение символ знака-разделителя (символ, отделяющий текст одной ячейки, от текста другой);

6. при объединении пустых ячеек с ячейками, содержащими формулы, сохранять формулы;

7. при объединении ячеек, содержащих формулы, сохранять формулы из левых/верхних ячеек;

8. выборочно объединять ячейки с заданным шагом.

Видео по быстрому объединению ячеек без потери значений

Как объединить ячейки в Excel стандартными средствами?

Объединение ячеек через контекстное меню

Самый простой способ объединить ячейки - выделить диапазон объединяемых ячеек, кликнуть правой кнопкой мыши в любом месте выделенной области и в появившемся контекстном меню выбрать пункт "Формат ячеек...". Далее в окне "Формат ячеек" перейти на вкладку "Выравнивание", в группе "Отображение" поставить галочку перед полем "Объединение ячеек" и нажать кнопку "ОК".

Объединение ячеек через панель инструментов

В Excel 2003 на панель инструментов "Форматирование" выведена кнопка , нажатие на которую приводит к объединению выделенных ячеек и выравниванию содержимого ячейки по центру, что часто используется для создания заголовков.

В Excel 2007/2010 аналогичная кнопка находится на вкладке "Главная", в группе кнопок "Выравнивание". Если зайти в меню этой кнопки, нажав небольшую стрелочку правее кнопки, то кроме опции "Объединить и поместить в центре" станут доступны "Объединить по строкам", "Объединить ячейки" и "Отменить объединение ячеек".

Почему пункты меню и кнопки для объединения ячеек неактивны

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

Как объединять ячейки в Excel при помощи горячих клавиш?

Объединение ячеек можно несколько ускорить, если скопировать объединенную ячейку, а затем вставлять ее в нужные места, используя сочетания горячих клавиш Ctrl+C для копирования и Ctrl+V для вставки. Кроме этого можно написать простейший макрос (либо записать его макрорекордером ) и присвоить этому макросу свое сочетание горячих клавиш , например Ctrl+M. Примерный код простейшего макроса приведен ниже.

Sub Obedinenie_Vydelennyh_Yacheek() Selection.MergeCells = True End Sub

Для того, чтобы перенести этот программный код на свой компьютер, наведите курсор мыши на поле с программным кодом, нажмите на одну из двух кнопкок в правом верхнем углу этого поля, скопируйте программный код и вставьте его в модуль проекта на своем компьютере (подробнее о том,

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

Используем контекстное меню

Выделите те блоки, которые нужно объединить и кликните по ним правой кнопкой мыши. Из контекстного меню выберите «Формат ячеек» .

Появится следующее диалоговое окно, в котором перейдите на вкладку «Выравнивание» . Поставьте галочку в поле «Объединение ячеек» . Здесь же можно задать выравнивание текста в блоке, или выбрать для него ориентацию. Нажмите «ОК» .

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

После объединения, осталось слово «объединим» , вместо «объединим эти ячейки» .

Используем кнопочку на ленте

Выделяем нужные блоки, переходим на вкладку «Главная» и кликаем на кнопочку «Объединить и поместить в центре» .

Появится уже знакомое сообщение, все значения будут удалены, кроме верхнего левого – оно будет помещено в центре.

Если нажать на стрелочку возле кнопки, появится дополнительное меню. В нем можно выбрать одно из предложенных действий, в том числе и отмену объединения.

Копируем ранее объединенные

Если в документе у Вас уже есть объединенные блоки с нужным текстом, то выделите их, скопируйте – используя комбинацию «Ctrl+C» , и вставьте в нужную область документа – «Ctrl+V» .

Даже если Вы выберите только одну ячейку для вставки скопированной области, она все равно будет вставлена, в моем случае, на три блока в строку и два в столбец. При этом данные, которые были там написаны, удалятся.

Использование функции СЦЕПИТЬ

Четвертый способ – объединим ячейки в Excel, сохранив данные, используя функцию «СЦЕПИТЬ» . Объединять будем А1 —В1 и А2 —В2 .

Добавим между ними дополнительный столбец. Выделяем В1 , на вкладке «Главная» кликаем по стрелочке возле кнопки «Вставить» и выбираем из списка «Вставить столбцы на лист» .

Дальше выделяем В1 , в нее вставился новый столбец, и прописываем следующую формулу, чтобы сцепить А1 —С1 : =СЦЕПИТЬ(А1;» «;С1) . В кавычках посредине впишите разделитель: «;» , «:» , «,» , у меня там стоит пробел.

Таким же образом объединяем А2 —С2 . Можно просто растянуть формулу по столбцу, потянув за правый нижний уголок В1 .

Для того чтобы оставить в таблице только объединенные ячейки, выделяем их и нажимаем «Ctrl+C» . Кликаем по ним правой кнопкой мыши и выбираем из меню «Специальная вставка» – «Значения» .

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

Удалим столбец А и С . Выделяем А1:А2 , на вкладке «Главная» нажимаем на стрелочку возле кнопки «Удалить» и выбираем из списка «Удалить столбцы с листа» . Также удаляем данные в С1:С2 .

В результате, мы получили объединенные ячейки без потери данных.

Использование макросов

Пятый способ – объединим блоки в Эксель без потери значений, используя макрос. Как вставить макрос в Эксель , Вы можете прочесть, перейдя по ссылке.

Запускаем редактор VBA, используя комбинацию клавиш «Alt+F11» , и создаем новый модуль.

Теперь в область для ввода VBA-кода вставляю следующий код. Макрос будет называться «MergeCell» . Сохраняем созданный макрос. Если у Вас Excel 2007 и выше, при сохранении документа в поле «Тип файла» выберите «Книга Excel с поддержкой макросов» .

Закрываем редактор VBA комбинацией «Alt+Q» , после этого откроется документ Excel.

Теперь нужно выполнить созданный макрос. Выделяем в документе ячейки, которые нужно объединить. Переходим на вкладку Разработчик и кликаем по кнопочке «Макросы» . В следующем окне выбираем из списка макрос с нужным названием – «MergeCell» , и нажимаем «Выполнить» .

Выделенные блоки объединены, и при этом данные сохранились. Чтобы текст нормально отображался в ячейке, перейдите на вкладку «Главная» и кликните по кнопочке «Перенос текста» .

Думаю рассмотренных способов достаточно, чтобы объединить данные или текст в ячейках Excel. При этом Вы можете сделать так, чтобы данные в объединенных ячейках не были удалены.

Оценить статью:

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

Как уже было сказано выше, существуют два основных вида объединения строк – когда несколько строчек преобразуются в одну и когда происходит их группировка. В первом случае, если строчные элементы были заполнены данными, то они все теряются, кроме тех, которые были расположены в самом верхнем элементе. Во втором случае, физически строки остаются в прежнем виде, просто они объединяются в группы, объекты в которых можно скрывать кликом по значку в виде символа «минус» . Есть ещё вариант соединения без потери данных с помощью формулы, о котором мы расскажем отдельно. Именно, исходя из указанных видов преобразований, формируются различные способы объединения строчек. Остановимся на них подробнее.

Способ 1: объединение через окно форматирования

Прежде всего, давайте рассмотрим возможность объединения строчек на листе через окно форматирования. Но прежде, чем приступить к непосредственной процедуре объединения, нужно выделить близлежащие строки, которые планируется объединить.


Существуют также альтернативные варианты перехода к окну форматирования. Например, после выделения строк, находясь во вкладке «Главная» , можно кликнуть по значку «Формат» , расположенному на ленте в блоке инструментов «Ячейки» . Из раскрывшегося списка действий следует выбрать пункт «Формат ячеек…» .

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

Также перейти в окно форматирования можно, произведя нажим комбинации горячих клавиш Ctrl+1 , после выделения необходимых элементов. Но в этом случае переход будет осуществлен в ту вкладку окна «Формат ячеек» , которая посещалась в последний раз.

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

Способ 2: использование инструментов на ленте

Также объединение строк можно выполнить, используя кнопку на ленте.

Но далеко не во всех случаях требуется, чтобы текст помещался по центру. Что же делать, если его нужно разместить в стандартном виде?

Способ 3: объединение строк внутри таблицы

Но далеко не всегда требуется объединять строчки до конца листа. Намного чаще соединение производится внутри определенного табличного массива. Давайте рассмотрим, как это сделать.


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

Способ 4: объединение информации в строках без потери данных

Все перечисленные выше способы объединения подразумевают, что после завершения процедуры будут уничтожены все данные в объединяемых элементах, кроме тех, которые разместились в верхней левой ячейке области. Но иногда требуется без потерь объединить определенные значения, расположенные в разных строчках таблицы. Сделать это можно, воспользовавшись специально предназначенной для таких целей функцией СЦЕПИТЬ .

Функция СЦЕПИТЬ относится к категории текстовых операторов. Её задачей является объединение нескольких текстовых строчек в один элемент. Синтаксис этой функции имеет следующий вид:

СЦЕПИТЬ(текст1;текст2;…)

Аргументы группы «Текст» могут представлять собой либо отдельный текст, либо ссылки на элементы листа, в которых он расположен. Именно последнее свойство и будет использовано нами для выполнения поставленной задачи. Всего может быть использовано до 255 таких аргументов.

Итак, у нас имеется таблица, в которой указан перечень компьютерной техники с её ценой. Перед нами стоит задача объединить все данные, расположенные в колонке «Устройство» , в одну строчку без потерь.


Есть также альтернативный вариант провести указанную процедуру по объединению данных из нескольких строчек в одну без потерь. При этом не нужно даже будет использовать функцию, а можно обойтись обычной формулой.

Способ 5: группировка

Кроме того, можно сгруппировать строки без потери их структурной целостности. Посмотрим, как это сделать.


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

Потребность объединить ячейки в Excel возникает у пользователя достаточно часто. Казалось бы, что здесь такого, ведь способов сделать это достаточно много. Однако юзерам, особенно тем, которые привыкли работать с Word, важно помнить об одном очень важном моменте: при объединении ячеек остается лишь то значение, которое находится в самой верхней и левой ячейке. Что касается остальных данных, то они попросту сотрутся.

Если на этом этапе вы расстроились, хочу вас обрадовать: выход все же есть, причем не один! Собственно говоря, данный материал я и хотел бы посвятить вопросу касательно того, как происходит объединение ячеек в excel без потери данных.

Как объединить ячейки

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


Как объединить ячейки без потери данных

Здесь я, пожалуй, также выделю два способа это сделать:

  1. Первый заключается в использовании надстройки, пусть это будет VBA-Excel. После того, как вы скачаете данный продукт и установите его, в главной ленте программы появится дополнительный пункт «Объединить ячейки». Соответственно, для этого вам нужно их просто выделить, после чего указать желаемый разделитель слов: точку, запятую, точку с запятой или же перенос строки.
  2. Второй способ более прост и заключается он в том, чтобы использовать встроенную в Эксель . Однажды я уже рассказывал, как ею пользоваться, но повторюсь вкратце еще раз: вызовите «Мастер функций», затем в поиске начните вводить название. В окне «Аргументы функции» для поля «Текст 1» выделите левой мышиной кнопкой первую ячейку среди тех, которых нужно объединить. В поле «Текст 2» выделите курсором следующую ячейку и так, пока они не закончатся. Обратите внимание, что сразу весь диапазон ячеек объединять нельзя, их необходимо разделять точкой с запятой. Например, ваша формула может выглядеть так: =СЦЕПИТЬ(А1;В1;С1).

Ну что, вроде ничего сложного нет. Теперь и вы знаете, как объединить между собой незаполненные ячейки и как проделать то же самое с ячейками, данные которых вам категорически нельзя терять!

Видео в помощь



Загрузка...