Снова столкнулся с проблемой, когда с какого нибудь сайта копируются пользователи с Excel. На сайте отображается отчет, в котором отображается ФИО, а по клику на него можно написать письмо этому пользователю. Конечно, если у Вас есть доступ к БД этого сайта, то эта статья не для Вас. Но как быть обычным смертным? Все решает сила Excel!
Итак, усложним пример.
Дано:
Все это можно сделать одной формулой, НО, у Excel нет формулы, что бы вытащить текст гиперссылки. Как это сделать я уже писал тут. Эта формула обязательно, иначе не получится.
Для выполнения задачи будем использовать следующие формулы:
Итак, кульминация! формула одной строкой:
=СЦЕПИТЬ(ПРОПНАЧ(СЖПРОБЕЛЫ(ПЕЧСИМВ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" "))));" ";"<";ПОДСТАВИТЬ(СТРОЧН(HLink(A1));"mailto:";"");">")
Ну вот, не так уж все и страшно выглядит :)
Итак, усложним пример.
Дано:
- Файл Excel
- ФИО написаны в разном регистре (где-то все маленькими, где-то все большими, где-то у оператора дергалась нога и он написал ЗаГлАвНыЕ через одну)
- В конце ФИО присутствуют какие-то "левые" символы (непечатные и не пробел)
- В Excel, конечно же, все скопировалось как нужно, т.е. это самое ФИО как гиперссылка, текст которой что-то типа mailto:writetome@domen.zon
- Из записи "иванов ИВАН ИвАнОвИч" (текст ссылки - mailto:WriteToMe@Domen.ZON) получить запись "Иванов Иван Иванович <writetome@domen.zon>"
Все это можно сделать одной формулой, НО, у Excel нет формулы, что бы вытащить текст гиперссылки. Как это сделать я уже писал тут. Эта формула обязательно, иначе не получится.
Для выполнения задачи будем использовать следующие формулы:
- СЦЕПИТЬ - Склейка строк
- ПРОПНАЧ - Делает первую буквы каждого слова заглавной, а остальные - прописные
- СЖПРОБЕЛЫ - Удаляет лишние пробелы
- ПЕЧСИМВ - Удаляет все непечатаемые знаки из текста
- ПОДСТАВИТЬ - Заменяет подстроку
- СИМВОЛ - Возвращает символ с заданным кодом
- СТРОЧН - Делает весь текст строчными буквами
- HLink - Возвращает текст гиперссылки
Итак, кульминация! формула одной строкой:
=СЦЕПИТЬ(ПРОПНАЧ(СЖПРОБЕЛЫ(ПЕЧСИМВ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" "))));" ";"<";ПОДСТАВИТЬ(СТРОЧН(HLink(A1));"mailto:";"");">")
Ну вот, не так уж все и страшно выглядит :)
Комментарии
Отправить комментарий