Объединение ячеек по горизонтали html. Как в Excel объединить данные в одну ячейку

таблиц лучше всего рассмотреть на примере простой таблицы, HTML-код которой приведен в листинге 5.10.

Это обычная таблица, ячейки которой пронумерованы - так нам будет проще в дальнейшем. На рис. 5.2 показан ее вид в окне Web-обозревателя.

А теперь рассмотрим таблицу на рис. 5.3.

Здесь выполнено объединение некоторых ячеек. Видно, что объединенные ячейки словно слились в одну. Как это сделать?

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

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

1. Найти в коде HTML тег (), соответствующий первой из объединяемых ячеек (если считать ячейки слева направо).

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

3. Удалить теги (), создающие остальные объединяемые ячейки данной строки.

Давайте объединим ячейки 2 и 3 таблицы (см. листинг 5.10). Исправленный фрагмент кода, создающий первую строку этой таблицы, приведен в листинге 5.11.

Точно так же создадим объединенные ячейки 4 + 5 и 12 + 13 + 14 + 15.

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

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

2. Найти в коде этой строки тег (), соответствующий первой из объединяемых ячеек.

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

4. Просмотреть последующие строки и удалить из них теги (), создающие остальные объединяемые ячейки.

Нам осталось объединить ячейки 1 и 6 нашей таблицы. Листинг 5.12 содержит исправленный фрагмент ее HTML-кода (исправления затронут первую и вторую строки).

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

Сейчас применяется не очень часто. Однако ранее, в период расцвета табличного Web-дизайна, трудно было встретить таблицу без объединенных ячеек . Так или иначе, знать о нем не помешает.

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

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

Самый простой способ

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

2 . Нажимаем на кнопку на вкладке «Главная» (вверху).

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

Еще один простой способ

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

2 . В окошке выбираем вкладку «Выравнивание» и ставим галочку напротив пункта «Объединение ячеек», после чего нажимаем OK.

Объединение ячеек с данными

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

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

Способ первый (через сцепление)

Шаг 1: склеиваем данные

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

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

1 . Щелкаем по пустой ячейке.

2 . Печатаем знак = и большими буквами слово СЦЕПИТЬ

3 . Открываем скобку и щелкаем по первой ячейке с данными, затем печатаем точку с запятой и щелкаем по второй, затем опять точку с запятой - и по третьей. После это закрываем скобку.

4 . Нажимаем клавишу Enter на клавиатуре.

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

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

Склеивание через знак & . Находится этот символ там же, где цифра 7 на клавиатуре. Набирать его нужно на английской раскладке при зажатой клавише Shift.

Принцип почти такой же, как и при склеивании через функцию СЦЕПИТЬ:

1 . Щелкаем в пустой ячейке и печатаем в ней знак =

2 . Нажимаем на первую ячейку с данными, печатаем символ & и нажимаем на вторую ячейку, затем опять вводим & и нажимаем на третью и так далее.

Как и в предыдущем случае, любой дополнительный символ (разделитель) должен быть указан в кавычках.

Шаг 2: убираем дубли

Не важно, каким способом, но данные мы склеили.

Если нужно получить такой же результат и для остальных ячеек, эту «формулу» можно растянуть:

  • Щелкаем по ячейке с результатом
  • Наводим на маленький черный квадратик внизу справа
  • Когда курсор примет вид тонкого черного плюса, нажимаем левую кнопку мышки и, не отпуская ее, растягиваем по другим ячейкам

У меня получилось вот что:

Подробнее о «растягивании» можно узнать из вот этого урока .

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

Иногда это подходит, но что делать, если нужны только склеенные данные? Выход есть!

1 . Выделяем новые (склеенные) ячейки.

2 . Щелкаем по любой из них правой кнопкой мышки и из меню выбираем «Копировать».

3 . Выделяем какие-нибудь другие пустые ячейки.

4 . Нажимаем по любой из них правой кнопкой мышки и выбираем «Специальная вставка».

5 . В окошке выбираем пункт «Значения» (вверху) и нажимаем ОК.

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

Собственно, теперь все предыдущие данные можно удалить, а эти (новые) скопировать и вставить на их место.

Способ второй (через Блокнот)

Честно говоря, мне этот способ даже больше нравится - он быстрее.

1 . Выделяем в Экселе ячейки с нужными данными (можно выделить целые столбы/строки).

2 . Копируем их (правая кнопка мыши - Копировать).

3 . Открываем программу Блокнот: Пуск - Все программы - Стандартные - Блокнот. Или открываем Пуск и печатаем слово блокнот в поле для поиска (внизу).

4 . Вставляем в окно программы скопированные данные (правой кнопкой мышки по пустому месту - Вставить).

5 . Копируем символ табуляции.

Для этого в пустой строчке Блокнота (перейти на нее можно, нажав на Enter) нажимаем один раз клавишу Tab на клавиатуре.

Указатель сразу перемещается чуть правее. Зажимаем левую кнопку мышки и выделяем этот отрезок, который визуально похож на десяток пробелов. Затем копируем (правой кнопкой по выделенному - Копировать).

6 . Вверху программы Блокнот нажимаем на пункт «Правка» и выбираем «Заменить…».

7 . В первое поле («Что:») вставляем скопированный символ табуляции, а во второе поле («Чем:») вставляем необходимый нам разделитель, например, жмем клавишу пробел.

8 . Нажимаем на кнопку «Заменить все» и закрываем это маленькое окошко.

После этого данные в Блокноте немного изменятся - текст как будто бы чуть-чуть сожмется.

9 . Выделяем все это в Блокноте и копируем.

10 . Переходим в программу Excel и вставляем скопированные данные (удалив предыдущие).

Способ третий (макрос)

Еще один вариант объединения ячеек в Экселе без потери данных. Он чуть более сложный - для тех, кто знает, что такое Visual Basic.

Данный способ я позаимствовал из вот этой статьи . Кстати, очень клёвый сайт, советую всем, кто работает с программой Excel.

1 . Открываем вкладку «Вид» и нажимаем на кнопку «Макросы».

2 . Печатаем название для макроса, нажимаем «Создать».

3 . Откроется редактор Visual Basic. Вставляем туда следующий код:

Sub MergeToOneCell()
Const sDELIM As String = " " "разделитель в данном случае пробел.
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) <> "Range" Then Exit Sub "если выделяются не ячейки, тогда программа выходит
With Selection
For Each rCell In .Cells
sMergeStr =sMergeStr & sDELIM & rCell.Text "процесс сбора текста из ячеек
Next rCell
Application.DisplayAlerts = False "выключаем обычное предупреждение о потере текста
.Merge Across:=False "объединение ячеек
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM)) " добавляем к объединенным ячейкам суммированный текст
End With
End Sub

4 . Закрываем редактор Visual Basic.

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

Урок 11.

Объединение ячеек таблицы.

В этом уроке продолжаем изучать таблицы, а именно мы рассмотрим еще два атрибута для тега <td> , которые отвечают за объединение ячеек. Посмотрев на рисунок ниже, Вы поймете о каком объединении пойдет речь.

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

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

Атрибут colspan.

Атрибут colspan используется для объединения ячеек по горизонтали. В значении атрибута указывается число ячеек объединяемых в одну.

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


Пояснения к коду:
Верхняя строка <tr> имеет одну ячейку <td> , для которой прописан атрибут colspan со значением 2 . Это значит, что данная ячейка объединяет в себе 2 ячейки, соответственно эта ячейка заменяет 2 ячейки. Вторая строка <tr> имеет 2 обычные ячейки <td> .
Получается, что в верхней строке у нас две объединенных между собой ячейки, а в нижней строке две обычные ячейки. Количество равное, значит код написан верно.

Теперь пример кода с распространенной ошибкой:


Пояснения к коду:
Ошибка в том, что первая строка <tr> содержит не две ячейки <td> , а три, в то время как вторая строка <tr> содержит две ячейки <td> .
Смотря на код, визуально кажется, что количество ячеек в строках одинаковое, так как кол-во тегов <td> одинаковое. Но один из тегов <td> имеет атрибут colspan со значением 2 , это значит, что эта одна ячейка занимает место двух.

Атрибут rowspan.

Атрибут rowspan используется для объединения ячеек по вертикали. Принцип действия точно такой же как и у атрибута colspan .


Пояснения к коду:
Верхняя строка <tr> имеет три ячейки <td> , для одной из них прописан атрибут rowspan со значением 3 . Это значит, что данная ячейка объединяет в себе 3 ячейки (которой задан атрибут + 2 нижних ячейки по вертикали). Как я уже сказал, первая строка имеет 3 ячейки, это значит, что и нижние две строки должны иметь тоже по три ячейки. Глядя на код, мы видим, что нижние две строки <tr> имеют лишь по две ячейки <td> , но не стоит забывать, что первая ячейка верхней строки заняла свое место + еще место двух ячеек находящихся под ней. Это значит, что общее количество ячеек в каждой из отдельной строки равно трем.

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

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

Было. Стало.
Выравнивание текста, цифр по горизонтали – регулирует расположение данных ячейки относительно её границ - слева, по центру, справа.

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

3. Копируем формулу по столбцу.
4. Теперь, если мы хотим в таблице оставить только столбец с объединенными ячейками (В2), а столбцы А и С (с исходными данными) удалить, то сначала копируем столбец с объединенными данными как ЗНАЧЕНИЕ (копировать - специальная вставка - значение - нажимаем в конце не «Enter», а «Esc»). Мы скопировали значение столбца В в новый столбец С.

5. Теперь столбцы С и D объединяем, а столбец А с исходными данными и столбец В с формулой удаляем. Получилась такая же таблица, только ячейки А и В объединены и данные в них объединены.

Если ячейки с исходными данными удалять не нужно, то не нужно копировать значение столбца с формулой (пункт 4 не нужно делать). А столбец с формулой объединить со вторым столбцом.

Можно столбец А просто скрыть, чтобы не мешал.
Как найти в таблице все объединенные ячейки, читайте в статье "Как найти объединенные ячейки в Excel ". Например, когда мы копируем данные из другой программы, то числа в Excel не обрабатываются, формулы не работают. Чтобф все заработало, нужно сменить формат значений.
Как удалить объединение ячеек в Excel .
Чтобы объединенные ячейки разъединить, нужно выделить эти ячейки и нажать кнопку «Объединить и поместить в центре». Ячейки разъединятся, а содержимое ячейки будет помещено в первой верхней ячейке.
В Excel можно объединить не только ячейки в одну, но многое другое.
Можно объединить содержимое из разных ячеек в одной ячейке. Например, объединить слова или слова и числа из разных ячеек в одно предложение. Как это сделать, смотрите в статье «Как объединить слова из разных ячеек в текст Excel» .
Можно объединить слова, другие данные не только в предложение, но и через знаки, например – косую черточку, другие знаки. Пример: сметана/молоко.
Можно составить предложение не только из ячеек, расположенных в строке, но и в столбце . Для этого нужно написать формулу. Как написать такую формулу, читайте в статье «Функция «СЦЕПИТЬ» в Excel».
Можно объединить списки в Excel в один. Например, есть несколько отдельных списков. Нам нужно из них составить один. Читайте об этом в статье «Как в Excel сделать список из двух» .
Можно объединить таблицы в Excel. В Excel есть функция «Консолидация», которая может объединить данные из нескольких таблиц в одну. Читайте «Как объединить таблицы в Excel».
Можно, ухитриться, и объединить сводные таблицы в Excel. В Excel нет функции объединить сводные таблицы, но есть способ сделать это. Все описано в статье «Сводная таблица в 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) )



Понравилась статья? Поделиться с друзьями: