Узнаем как можно извлечь текст примечания из ячейки в Excel для последующей обработки и анализа текстовых данных, а также разберем альтернативный способ вывода примечаний на печать.
Приветствую всех, уважаемые читатели блога TutorExcel.Ru.
Практически каждый пользователь Excel умеет добавлять примечания к ячейкам в виде текстовой заметки. Обычно в примечания добавляют какую-либо пояснительную информацию о введенных в ячейку данных.
Однако иногда возникает необходимость выцепить текст из примечания в отдельную ячейку, чтобы в дальнейшем обработать и проанализировать эту информацию. Например, просмотреть дополнительные данные по заказам интернет-магазина.
Предположим, что мы хотим отфильтровать данные по конкретным заказам, коих в интернет-магазине может быть десятки и сотни в день.
Конечно, можно вручную копировать текст из каждого примечания и вставлять комментарии в ячейки, но при большом объеме данных данный способ нельзя назвать эффективным.
Давайте разберёмся как можно скопировать комментарии из ячеек средствами Excel.
Как получить текст примечания из ячейки в Excel?
Стандартных инструментов извлечения текста (конечно, помимо ручной работы) в Excel нет. Как и всегда в таких случаях нам на помощь придет пользовательская функция.
По большому счету примечание это такое же свойство ячейки, как и, к примеру, цвет заливки, текста и т.д.
Поэтому сама функция по выделению комментария довольно простая, достаточно обратиться к свойству Comment.Text.
Переходим в редактор Visual Basic, создаём новый модуль (щелкаем правой кнопкой мыши в панели проектов и выбираем Insert -> Module) и добавляем туда код новой функции:
1 2 3 4 5 6 7 |
Function GetTextComment(CommentCell As Range) If CommentCell.Comment Is Nothing Then 'Если комментарий пустой, то возвращаем пустую строку GetTextComment = "" Else GetTextComment = CommentCell.Comment.Text 'Возвращаем комментарий End If End Function |
Теперь проверим работу функции GetTextComment на практике.
Для примера возьмем таблицу, где в крайнем правом столбце добавлены несколько примечаний, текст которых мы хотим поместить в соседний столбец:
Вводим формулу в ячейки столбца F (пользовательскую функцию, как и любую другую функцию, мы можем либо вручную ввести в строке формул, либо найти ее в категории Определенные пользователем с помощью мастера функций), в результате получаем:
Как мы видим вместе с текстом в ячейку добавился и автор (имя пользователя в Excel, в моем случае это «IZ»), поэтому если есть необходимость, то чтобы убрать его нужно в функции дополнительно прописать операцию удаления текста (удаляем весь текст до двоеточия после которого в Excel начинается комментарий):
1 2 3 4 5 6 7 8 9 |
Function GetTextCommentWOA(CommentCell As Range) Dim TextString As String If CommentCell.Comment Is Nothing Then 'Если комментарий пустой, то возвращаем пустую строку GetTextCommentWOA = "" Else TextString = CommentCell.Comment.Text 'Записываем комментарий в дополнительную переменную TextString GetTextCommentWOA = Mid(TextString, InStr(TextString, ":") + 2) 'Удаляем из переменной TextString все символы до двоеточия, возвращаем полученный текст End If End Function |
Проверяем корректность удаления имени пользователя при расчете функции GetTextCommentWOA:
Все готово, имя пользователя пропало, теперь можно приступать к дальнейшей работе с текстовыми данными.
К сожалению, вариант с получением картинки из примечания таким способом осуществить уже не получится, так как возвращаемое значение пользовательской функции не может быть картинкой (однако можно реализовать с помощью макроса).
Дополнительные возможности при печати
Данный способ отображения примечаний также может быть полезен и при печати листов.
Если нужно вывести примечания на печать, то можно сделать это стандартным способом в настройках параметров печати (тут можно почитать подробнее), а можно добавить их в ячейки листа разобранным способом (в том случае если позволяет структура документа) и отправить на печать без дополнительного изменения настроек.
Спасибо за внимание!
Если у вас остались вопросы — пишите в комментариях.
Удачи вам и до скорых встреч на страницах блога TutorExcel.Ru!
Спасибо за отличное обьяснение. Но возник вопрос — как настроить автоматическое обновление содержимого ячейки (куда мы копируем текст примечания) при изменении примечания?
Добрый день. Не могу нигде найти, как можно вставить сразу несколько примечаний в несколько ячеек. Т.е. например, есть 5 строчек с наименованиями товара, а в соседних столбцах, по горизонтали, их описания. Как можно сразу перенести эти описания в примечания. По сути нужна функция, обратная описанной вы этой статье.
Буду благодарна за помощь.