Сравнение списков доменов

Автор ForumOOo (бот), 27 января 2018, 12:38

0 Пользователи и 1 гость просматривают эту тему.

ForumOOo (бот)

Компонент: Calc
Версия продукта: 4.x
Сборка: Apache OpenOffice
ОС: windows 10

Здравствуйте!
Задача такова - есть список доменов вида
domain1.com/1234
domain2.com/6789
domain3.ru/frfrf/8277/38383

и много разных Url такого вида.

Далее есть второй список доменов где доменное имя может совпадать с первым списком но при этом полный url не совпадает

Например
domain1.com/1111111
domain2.com/99999
domain3.ru/7777/еееее/ааааа

Как видите, домены те же что в пером списке но url дугой.

Мне нужно найти дубли именно домена. Т.е если у меня 2 списка и в них есть одинаковые домены (без полного url) то их надо как то выделить, что бы я мог их
проверить и удалить.

Заранее спасибо за помощь!
<br/><br/>--<br/>Подпись: Владислав.С

JohnSUN

#1
Здравствуй, тёзка, и добро пожаловать на форум!
Это не очень сложная задача. Самая сложная её часть - подготовка тестовых данных. Приложи к следующему сообщению книгу-образец и расскажи подробнее, что должно произойти с дублями
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Владислав.С

#2
Прикрепил файл в котором 2 списка доменов из которых нужно выявить дубли доменного имени без url.

Дубли желательно удалить из столбца B. Если это сложно, то можно в столбце B, дубли пометить каким то цветом.
Возможно есть какие-то другие решение, более простые. Я просто плохо знаком с openoffice. В итоге мне нужно выявить какие из доменных имен в столбце B уже есть в столбце А.

Заранее спасибо!


JohnSUN

И тебе спасибо. Вот только твой test1 не совсем удачен - все домены из колонки B есть и в колонке A. Пришлось изменить mydomain5.ru на mydomain6.ru чтобы получить хоть одну ячейку с ЛОЖЬ
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Владислав.С

#4
Не совсем понимаю что делать дальше..
"Домен из B уже есть в A" - Тут все показывается как "Ложь"
"Домены колонки А" - тут написано "#ИМЯ?"

JohnSUN

#5
Тэк-с... В какой программе работаешь? Название офиса (OpenOffice или LibreOffice) и версия (можно скриншот с окошка Справка-О программе...)
Сейчас всё заработает, не переживай
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Владислав.С

#6
Прикрепил скрин

JohnSUN

#7
Понятно. Проблема возникла с функцией IFERROR(), OpenOffice её ещё не знает.
Значит, возможны такие варианты:
1. Скачай и установи ещё и LibreOffice (не пожалеешь - в принципе, они с OpenOffice очень близкие родственники, переучиваться не придётся)
2. Позаботься о том, чтобы в колонке F каждый URL содержал /. В этом случае формула в колонке D станет короче и проще
=LEFT(A2;FIND("/";A2)-1)
Но в этом случае, если в какой-то из ячеек встретится "голый домен без слэша" (например, Mydomain4.ru), то формула выдаст ошибку #VALUE!
3. Если же первый список слишком длинный и тебе лень просматривать его весь, то можно использовать длинную и запутанную формулу
=LEFT(A2;IF(ISERROR(FIND("/";A2)-1);LEN(A2);FIND("/";A2)-1))
Она делает то же самое, что и формула с IFERROR()
4. А если все-таки захочешь использовать короткую формулу и проставить слэши там, где их не хватает, то можешь воспользоваться поиском строки ^[^/]*$ с включёнными регулярными выражениями и заменить всё найденное на строку &/

PS. Название темы изменил, чтобы её проще было отыскать
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Владислав.С

#8
Скачал либра, вроде в Вашем документе все работает, но, теперь проблема в том что домены идут с http:// или https:// и в столбце "Домены колонки А" теперь вместо домена показывается http или https, соответственно значение столбца "Домен из B уже есть в A" теперь всегда "Ложь"

Так же возможно будет более проще (как минимум мне это еще больше облегчит работу) если получится решить вот такую задачу:
Calc документ, в котором 10 вкладок. В каждой из вкладок в абсолютно разных ячейках есть домены с http/https или без, с www и без, просто домен, или домен с страницей сайта (т.е длинный полный url).
Моя задача получив новый список доменов, проверить имеются ли они уже в этом документе Calc в любой из вкладок. При этом мне не важен полный url, a важно есть ли именно имя домена. Сейчас я это делаю выполняя поиск по доменному имени через ctrl+F и отметив галку "Поиск во всех листах".
Возможно будет проще на новой вкладке (листе) создать список доменов которые мне надо проверить и в столбце рядом, некую формулу которая будет проверять домен по остальным вкладкам (листам) и ставить ему некий статус есть/нет.

Возможно в openoffice или в libreoffice, для такой задачи есть более простой функционал о котором я просто не знаю?


JohnSUN

Цитата: Владислав.С от 28 января 2018, 08:56
теперь проблема в том что домены идут с http:// или https://
Это только теперь стало проблемой?
Цитата: Владислав.С от 28 января 2018, 08:56
Так же возможно будет более проще (как минимум мне это еще больше облегчит работу) если получится решить вот такую задачу:
Calc документ, в котором 10 вкладок.
Это действительно намного более проще, приблизительно раз в десять
Цитата: Владислав.С от 28 января 2018, 08:56
В каждой из вкладок в абсолютно разных ячейках есть домены с http/https или без, с www и без, просто домен, или домен с страницей сайта (т.е длинный полный url).
О, а это ещё проще
Цитата: Владислав.С от 28 января 2018, 08:56
Моя задача получив новый список доменов
Откуда? В каком виде?
Цитата: Владислав.С от 28 января 2018, 08:56проверить имеются ли они уже в этом документе Calc в любой из вкладок. При этом мне не важен полный url, a важно есть ли именно имя домена.
И?.. И что дальше? Ну, проверил, ну, узнал что вот этого домена ещё не было... И что?
Цитата: Владислав.С от 28 января 2018, 08:56
Сейчас я это делаю выполняя поиск по доменному имени через ctrl+F и отметив галку "Поиск во всех листах".
Возможно будет проще на новой вкладке (листе) создать список доменов которые мне надо проверить и в столбце рядом, некую формулу которая будет проверять домен по остальным вкладкам (листам) и ставить ему некий статус есть/нет.
Шикарная идея! Вариантов такого решения с помощью макросов на этом форуме штук пять, не меньше
Цитата: Владислав.С от 28 января 2018, 08:56
Возможно в openoffice или в libreoffice, для такой задачи есть более простой функционал о котором я просто не знаю?
Нет, задача реально сложная и готового встроенного функционала под неё нет

На большинство твоих последних уточнений могу ответить только то, что уже писал:
Цитата: JohnSUN от 27 января 2018, 13:28
Приложи к следующему сообщению книгу-образец...
Прошлый твой образец работает нормально? Вот и хорошо
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Владислав.С

#10
Я не понял действительно ли использовать поиск более проще раз в десять или это был сарказм?   :)
Я новичок в работе с оффисом и тем более с регулярными выражениями.

Так, прикладываю максимально реалистичный образец.
В образце будет таблица которая у меня уже есть с разными вкладками и доменами.

Новый список доменов (которые мне надо проверить, я получаю просто списком вот в таком виде:

h ttp://domain1.com/Gallery/GL652_Gallery.php
h ttp://domain2.ru/category/iphone/
h ttps://adomain3.ru/?p=16615
h ttp://www.domain4.com/language/01.html
h ttp://domain5.ru/index.php?start=18
h ttps://www.domain6.ru/
h ttps://www.domain7.net
h ttp://domain8.org/
domain9.biz/
domain10.com.ua

Т.е как видите домены идут разные, некоторые просто домен, некоторые с длинным url, некоторые с www а некоторые без, https и hhtp, с / в конце и без.
Мне в итоге надо проверить есть ли сам домен, не важно что перед ним или после, в моей уже существующей таблице.
Что делать с теме доменами которые есть или которых нет, мне это не так важно, можно те или другие (те что есть или те которых нет) как то пометить, или выделить, или в отдельный столбец перенести в новой таблице. Если же это делается не через формулу а через некий расширенный поиск то возможно получить отметку, что вот такие то домены уже есть в таблице а других нет.

Если это очень сложная задача, и более менее простого решение для нее нет, то помогите пожалуйста с формулой которую вы уже делали, что бы учитывало http/https, www и т.д, если Вам не сложно.

Заранее спасибо!

JohnSUN

Если и сарказм, то совсем немного - это действительно проще, почти как фейхоа просклонять. Просто в этом случае нужен другой подход - не формула, а макрос.
Написание макроса сложнее, чем конструирование формулы. Но! Использовать его гораздо проще: не нужно ничего никуда вписывать, растягивать, пересчитывать - нажми кнопку и получи результат.
Как этим пользоваться? Я думаю, сможешь разобраться.
Если в колонке D пусто - значит URL уникальный. Если что-то есть - кликни на ячейку с зажатым Ctrl и посмотри где этот дубль вылез.
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне