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

Есть несколько способов выполнить эту задачу. Это довольно легко сделать с помощью простой формулы. Например, если ваша первая текстовая строка находится в ячейке A1, поместите следующую формулу справа в ячейку B1:

=MID($A1,COLUMN()-1,1)

Эта формула использует функции листа Excel для разделения текстовой строки. В этом случае функция COLUMN возвращает значение 2, поскольку формула находится в столбце B, а это второй столбец на листе.

Это значение уменьшается на 1, а затем используется как указатель на строку в ячейке A1, отмечая, откуда должен происходить извлеченный символ. Когда вы копируете эту формулу правильно для любого количества желаемых ячеек, вы получаете отдельные символы из строки в последовательном порядке.

Конечно, если у вас довольно много строк на листе (как у Джона), то копирование этой формулы на 249 столбцов и ниже, скажем, нескольких сотен строк может сделать рабочий лист очень медленным. В таких ситуациях может быть желательно использовать макрос для разделения строк вместо формулы. Следующий макрос, SplitUp, представляет собой один из подходов к фактическому разрыву.

Sub SplitUp()

Dim c As Range     Dim r As Range     Dim sTemp As String     Dim z As Integer

Set r = Range("A1", Range("A65536").End(xlUp))

For Each c In r         sTemp = Left(c, 249)

For z = 1 To Len(sTemp)

c.Offset(0, z) = Mid(sTemp, z, 1)

Next z     Next End Sub

Макрос начинается с определения диапазона (r), который состоит из всех ячеек в столбце A, содержащих значения. Затем переменная c используется для представления каждой ячейки в диапазоне, и первые 249 символов извлекаются из каждой ячейки. Затем используется цикл For …​ Next для извлечения каждого символа из строки и помещения его в ячейку справа от строки.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2790) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Pulling_Apart_Characters_in_a_Long_String [Удаление символов в длинной строке].