К основному контенту

Преобразование ссылки в e-mail в Excel

Снова столкнулся с проблемой, когда с какого нибудь сайта копируются пользователи с Excel. На сайте отображается отчет, в котором отображается ФИО, а по клику на него можно написать письмо этому пользователю. Конечно, если у Вас есть доступ к БД этого сайта, то эта статья не для Вас. Но как быть обычным смертным? Все решает сила Excel!
Итак, усложним пример.
Дано:
  • Файл Excel
  • ФИО написаны в разном регистре (где-то все маленькими, где-то все большими, где-то у оператора дергалась нога и он написал ЗаГлАвНыЕ через одну)
  • В конце ФИО присутствуют какие-то "левые" символы (непечатные и не пробел)
  • В Excel, конечно же, все скопировалось как нужно, т.е. это самое ФИО как гиперссылка, текст которой что-то типа mailto:writetome@domen.zon
Задача:
  • Из записи "иванов ИВАН ИвАнОвИч" (текст ссылки - mailto:WriteToMe@Domen.ZON) получить запись "Иванов Иван Иванович <writetome@domen.zon>"

Все это можно сделать одной формулой, НО, у Excel нет формулы, что бы вытащить текст гиперссылки. Как это сделать я уже писал тут. Эта формула обязательно, иначе не получится.
Для выполнения задачи будем использовать следующие формулы:

  • СЦЕПИТЬ - Склейка строк
  • ПРОПНАЧ - Делает первую буквы каждого слова заглавной, а остальные - прописные
  • СЖПРОБЕЛЫ - Удаляет лишние пробелы
  • ПЕЧСИМВ - Удаляет все непечатаемые знаки из текста
  • ПОДСТАВИТЬ - Заменяет подстроку
  • СИМВОЛ - Возвращает символ с заданным кодом
  • СТРОЧН - Делает весь текст строчными буквами
  • HLink - Возвращает текст гиперссылки
Если у кого-то не русский Excel, то можно воспользоваться этим ресурсом, что бы найти соответствие русских названий функций с английскими.

Итак, кульминация! формула одной строкой:

=СЦЕПИТЬ(ПРОПНАЧ(СЖПРОБЕЛЫ(ПЕЧСИМВ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" "))));" ";"<";ПОДСТАВИТЬ(СТРОЧН(HLink(A1));"mailto:";"");">")

Ну вот, не так уж все и страшно выглядит :)

Комментарии

Популярные сообщения из этого блога

Прямые ссылки на файлы Google диска

В предыдущей статье я рассказал, как подключить свой JavaScript файл к блогу BLOGSPOT . Но для того, что бы их подключить нужны прямые ссылки на файл, а Google диск при предоставлении общего доступа к файлу выдает ссылку на предварительный просмотр, которая никак напрямую не ссылается на файл. Для Google диска прямая ссылка на файл - это ссылка на скачивание. Ниже описаны два способа создания ссылки на скачивание на примере файла prism.js.

События для ведения таблиц

Как и всегда, в пылу проекта внезапно родилась Z табличка. Главный нюанс был в том, что она должна была хранить пароли для авторизации на стороннем сервере. Естественно, никто не хотел хранить пароли в открытом виде, а двустороннее шифрование SAP не умеет без сторонних пакетов и надстроек. Далее, все как обычно - придумали алгоритм, сделали табличку. Дело осталось за малым - нужно шифровать пароли, которые вводит пользователь. Делать отдельную программу нет смысла, поскольку ее функционал мало чем будет отличаться от сгенерированного. Вот здесь на помощь приходят события! С их помощью можно, наверное, все. По крайней мере, я не нашел чего-либо, что нельзя сделать с данными через события.

OOP ALV GRID с HTML шапкой

В этой статье хочу постараться подробно описать и привести пример, как можно создать ALV отчет с таблицей на весь экран и с HTML шапкой вверху. Я не буду описывать начальный этап, где пишется селекционный экран или делается выборка данных. Будем считать, что основа у нас есть и нам нужно просто вывести данные. Главной изюминкой является то, что нужно вывести ALV GRID на экран без использования каких-либо дополнительных элементов на экране. Step-By-Step Шаг 1. Создание окна Создаем самое простое окно с номером 100. На него не нужно кидать никаких контейнеров. Оно нам нужно только для модулей PAI и PBO и вывода на него ALV GRID.