Разделение символов в длинной строке (Microsoft Excel)
У Джона есть рабочий лист, который в столбце 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 [Удаление символов в длинной строке]
.