Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 849
Возможно ли средствами LibreOffice/OpenOffice решить задачу на нечеткое сопоставление строк К примеру нужно сопоставить столбцы, где значения могут расходиться на несколько символов. К примеру: " г. Москва" или "Москва (город)".

Для Microsoft Office есть официальный аддон. Что предлагает сообщество Или нечеткое сопоставление не нужно
Теги: Excel  

Комментарии19

# 1

AleksKN
Новичок
Зарегистрирован: 15.07.2013
Сообщений: 13
Простое гугление даёт следующее:
Сообщение от Пример: Поиск подобного
Этот пример показывает, как в тексте может быть найдено слово “товарооборот” и
результаты, отформатированы жирным шрифтом. Поиск подобия используется для того,
чтобы не только слово “товарооборот”, но также были найдены и множественная форма
“товарообороты” и другие формы, типа “товарооборота”. Ищущиеся выражения отличаются
до двух букв от выражения поиска:
Dim SearchDesc As Object
Dim Doc As Object
Doc = StarDesktop.CurrentComponent
SearchDesc = Doc.createSearchDescriptor
SearchDesc.SearchString="товарооборот"
SearchDesc.SearchSimilarity = True
SearchDesc.SearchSimilarityAdd = 2
SearchDesc.SearchSimilarityExchange = 2
SearchDesc.SearchSimilarityRemove = 2
SearchDesc.SearchSimilarityRelax = False
Found = Doc.findFirst(SearchDesc)
Do Until IsNull(Found)
Found.CharWeight = com.sun.star.awt.FontWeight.BOLD
Found = Doc.findNext(Found.End, SearchDesc)
Loop

http://admin-smolensk.ru/~websprav/freesoft/freesoft/OpenOffice.org.BASIC%20Guide.pdf

# 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 849
AleksKN, мда... не густо. Надо понимать, что это единственное решение и полноценных реализаций, без самостоятельного написания макросов на VBA нет
-- тишина - самый громкий звук

# 0

AleksKN
Новичок
Зарегистрирован: 15.07.2013
Сообщений: 13
Сообщение от Luca
Надо понимать, что это единственное решение и полноценных реализаций, без самостоятельного написания макросов на VBA нет

А какие ещё тебе нужны решения Все описано, с примерами использования на встроенном языке, без использования сторонних средств.

# 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 849
AleksKN, ну для этого как минимум этот встроенный язык нужно очень хорошо знать. Мне к примеру вообще не очевидно как произвести нечеткое сопоставление столбцов или двух таблиц. К примеру:
name1 и name2 value2, где сопоставление нужно сделать результирующую таблицу
name1 value2
-- тишина - самый громкий звук

# 0

AleksKN
Новичок
Зарегистрирован: 15.07.2013
Сообщений: 13
Сообщение от Luca
Мне к примеру вообще не очевидно как произвести нечеткое сопоставление столбцов или двух таблиц. К примеру:
name1 и name2 value2, где сопоставление нужно сделать результирующую таблицу
name1 value2

Задача изначально неправильно поставлена, нечеткое сравнение двух строк это одна задача, обход двух таблиц это другая задача (как их обходить, построчно, по полям, каждую ячейку из одной таблицы сравнить с каждой и другой, сравнить соответствующие ячейки, а если таблицы разные по размеру и т.д.), создание результирующей таблицы третья задача. И в этих задачах можно ещё выделить подзадачи, все зависит от конкретного случая.

# 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 849
AleksKN, но ты согласен, что в Libre нет готового и простого решения, а есть только путь изучения VBA и вкуривания в документацию
-- тишина - самый громкий звук

# 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 260
Luca, лично я считаю, что либра тот еще отстой, но по твоем надо было сделать миллион готовых кнопочек для каждой задачи и подзадачи В любом случае, задача автоматизации подобного рода уже требует навыков программирования.

# 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 849
Babusha, я ж говорю, что под MSO аддон есть готовый. Никакого программирования. Кстати, сколько не пытался понять VBA, но он у меня ассоциируется с каким-то брейнфаком.
-- тишина - самый громкий звук

# 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 260
Сообщение от Luca
я ж говорю, что под MSO аддон есть готовый.


Лучше расскажи, в чем преимущества этого аддона, по сравнению с макросами, лучше даже составь аналитический обзор, а то спорить с тобой бессмысленно, тогда. Еще в LibreOffice можно использовать Python, JavaScript, Bean Shell, а не VBA, да и VBA просто слишком слово-громоздкий. Если в нормальных языках переменные объявляются type name = value, то в VBA Dim Name As Type, что мой мозг с непривычки не воспринимает.
https:/help.libreoffice.org/Common/Scripting/ru

# 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 849
Сообщение от BabushaЛучше расскажи, в чем преимущества этого аддона, по сравнению с макросами

Макросы уметь писать надо. А писать их весьма не просто.
-- тишина - самый громкий звук

# 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 260
Сообщение от Luca
Макросы уметь писать надо.


Так не умеешь - заплати тому, кто умеет. Ты же не умеешь дуть стекло или выплавлять метал Или научись.

Сообщение от Luca
А писать их весьма не просто.


Ну так работать мозгами не просто в принципе.

# 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 849
Babusha, так мне нужно задачи решать, а не думать по пустякам. Тем более невозможно знать все на очень хорошем уровне. Ты этом сам прекрасно понимаешь.
-- тишина - самый громкий звук

# 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 260
Сообщение от Luca
так мне нужно задачи решать, а не думать по пустякам.


Ну да, задачи решать, не думать, мда, ты в менеджера по влажной уборке подался

Сообщение от Luca
Тем более невозможно знать все на очень хорошем уровне.


Ну так если ты решаешь прямые задачи, то как можно "экономить" на знаниях того инструмента, который ты используешь

# 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 849
Сообщение от BabushaНу так если ты решаешь прямые задачи, то как можно "экономить" на знаниях того инструмента, который ты используешь
Excel для меня относится сугубо к утилитарным приложениям, так что я не вижу смысл учить отдельный язык под него. Мне в 90% случаев хватает штатного функционала доступного по кнопкам в меню.
-- тишина - самый громкий звук

# 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 260
Сообщение от Luca
Excel для меня относится сугубо к утилитарным приложениям, так что я не вижу смысл учить отдельный язык под него.


Иксель - это серьезное приложение для структурирования и обработки информации, это серьезная вещь, для работы с которой нужны знания, это тебе не игрушка.

Сообщение от Luca
Мне в 90% случаев хватает штатного функционала доступного по кнопкам в меню.


Ну так попроси разработчиков сделать одну большую кнопку "СДЕЛАЙ ВСЕ, ОГРАБЬ КАРАВАН, СВАРИТЬ КОФЕ, ПОДРОЧИТЬ ПИСЮН".
Не, серьезно, почему бы и нет Прошу, не надо мне больше рассказывать про то, что макросы не нужны и все такое.

# 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 849
Babusha, дык разработчики MS Office и сделали все что нужно. А макросы под Excel осиливать не буду. Они откровенно токсичные.
-- тишина - самый громкий звук

# 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 2
Сообщение от Luca
дык разработчики MS Office и сделали все что нужно

А можно поинтересоваться что именно они сделали. Ну а потом уже сравнить с тем, что сделано в LO, поскольку нечёткий поиск там имеется из коробки.

# 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 849
Сообщение от PasserbyА можно поинтересоваться что именно они сделали.

Ну вот [url=www.microsoft.com/en-us/download/details.aspxid=15011]готовое решение[/url].

Сообщение от Passerbyв LO, поскольку нечёткий поиск там имеется из коробки.

Опять речь про макросы
-- тишина - самый громкий звук

# 1

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 2
Сообщение от Luca
Опять речь про макросы

Отнюдь. Бегемот, делай айн
http://rghost.ru/47906217/thumb.png

цвай
http://rghost.ru/47906256/thumb.png

драй
http://rghost.ru/47906273/thumb.png