Делим один столбец на несколько – единым махом
Мы продолжаем изучать программу Excel и не устаем вникать во все тонкости, способные облегчить работу офисного клерка. И сегодня на очереди разделение одного столбика на несколько. Два способа – читаем дальше.
Например, у нас есть столбик с определенными данными, например, имена, фамилии и отчества. И вам надобно разделить его на отдельные столбцы, так, чтобы в одном была фамилия, имя – в другом, а отчество – в третьем. Или, например, полное и завершенное описание товара находится в одном столбце, а вам нужно отдельный столбик отделить под компанию-производитель, следующий – под модель, следующий – под технические характеристики товара. И если таких товаров у вас больше тысячи, ручками не очень-то поработаешь.
Но вам повезло. Есть сразу два способа разделить столбцы.
Первый вариант, без программирования.
Вначале мы выделяем все ячейки, которые придется делить. Потом идем в меню, ищем вкладку Данные, там – Текст по столбцам. Таким образом вызывается Мастер текстов.

Сначала, на первом шаге, нам нужно выбрать требуемый формат текста. То есть, либо это текст, где есть символ, отделяющий друг от друга разные будущие столбики (например, запятая или точка между разными категориями описания товара). Это текст с разделителями. Либо текст фиксированной ширины, где пробелы имитируют одинаковую ширину столбиков. После того, как выберете нужную опцию, переходим на второй шаг Мастера. Тут нам нужно узнать (если мы выбрали формат с разделителями), какой символ станет разделять единый столбик на множество: пробел, знак табуляции, точка с запятой или запятая. Или любой другой знак. После отметки, переходим на третий шаг. Тут мы их предварительно выделим в окне программы Мастера, и выберем формат столбика: общий, который все данные оставит примерно как есть, и именно этот формат будет наиболее подходящим в подавляющем большинстве случаев. Дата – подходит, если нужно выбрать столбики с датами. А формат даты будет уточняться в следующем, выпадающем, окне. И третий формат – текстовый. Для сугубо текстовых данных.
Ну вот, теперь можете нажимать на Готово, отвечайте «да», когда программа вас спросит, заменять ли конечные ячейки, и все, результат перед вами.
Есть и еще один способ разделения столбика, программный. Для этого нам нужно написать пользовательскую функцию, весьма простую, и в итоге она будет делить строку по любому разделителю. Если вы выбрали это способ, идем в Сервис, там находим Макрос и – Редактор Visual Basic. Перед вами предстанет окно редактора, и там вам нужно выбрать меню Вставки модуля (Insert – Module). И здесь выбираем пустой модуль, куда мы поместим нижеследующие строчки, все до единой
Function ExtractElement(Txt, n, Separator) As String
' Функция выдает n-ый элемент текстовой строки Txt, где
' символ Separator используется как разделитель
Dim Txt1 As String, TempElement As String
Dim ElementCount As Integer, i As Integer
Txt1 = Txt
' Если в качестве разделителя используется пробел, то убираем лишние
' и двойные пробелы
If Separator = Chr(32) Then Txt1 = Application.Trim(Txt1)
' Добавляем разделитель в конец строки (если необходимо)
If Right(Txt1, 1) <> Separator Then Txt1 = Txt1 & Separator
' Начальные значения
ElementCount = 0
TempElement = ""
' Извлекаем элемент
For i = 1 To Len(Txt1)
If Mid(Txt1, i, 1) = Separator Then
ElementCount = ElementCount + 1
If ElementCount = n Then
' Found it, so exit
ExtractElement = TempElement
Exit Function
Else
TempElement = ""
End If
Else
TempElement = TempElement & Mid(Txt1, i, 1)
End If
Next i
ExtractElement = ""
End Function
Ну все, теперь можно редактор закрывать, и возвращаться в программу с помощью команды Close and return to Microsoft Excel. И теперь можно использовать написанную функцию в любой ячейке вашего документа. Достать программ можно в меню Вставки, через Функцию, в категории Определенные пользователем. Да, в аргументах txt буде ячейка, нуждающаяся в разделении, N – соответственно, порядковый номер элемента, поддающегося извлечению, а символ, разделяющий столбец - Separator.
Читайте также: Из мира операционных систем
- 21/08/2011 18:28 - Координатное выделение в таблице
- 06/08/2011 19:33 - Как проводить защиту макросом
- 13/12/2010 17:56 - VBA Excel




