Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Транзитивная группировка чисел с рекурсивным поиском
 
Цитата
написал:
Все вставил в кодРазделитель и значение при ошибке можно прописать в формуле. По умолчанию разделитель - ';', значение при ошибке -
Огромное вам спасибо!! :)  Мир вашему дому, лучей добра и успехов! Работает как надо.
Транзитивная группировка чисел с рекурсивным поиском
 
Да собственно пример в первом файле. Основной смысл что должна делать формула, это группирование на основе столбца "E".
Вот более подробный предполагаемый механизм связей.
Пример обработки строки:
1. Берем поочередно числа 3 и 7.
2. В начале обходим весь столбец E поиском числа 3.
3. Находим тройку в и строках.
4. Забираем ВСЕ найденные значения из и строках.
5. из найденного получаем числа {6;5;3;7} - из строки  и {3;7} числа из строки.
6. Оставляем уникальные из найденного, получаем 6;5;3;7
7. Обходим вновь весь столбец E поиском, на предмет нахождения в нем КАЖДОГО числа {6;5;3;7}
8. Если что-то еще находится, продолжаем все собирать для дальнейшего поиска по каждому элементу.

9. Закончив с числом 3, приступаем к числу 7.
10. Проделываем с ним все те же операции.
11. Возможно на этапе сбора чисел, можно настроить дополнительную уникализацию, дабы избежать дублирования поиска по уже пройденным числам.



Добавил цветовую группировку, что бы визуально было более понятно что в итоге образует группы по общему сопоставлению в столбце F
Изменено: vasa666 - 04.02.2025 13:53:32
Транзитивная группировка чисел с рекурсивным поиском
 
Спасибо вам за то что попытались вникнуть в мою проблему, я так понял это Power Querty, я с ним почти не знаком.
Судя по результату, итог работы не совсем верный, а именно в 4,8,9,11 строках результат отличен от того, что должен быть.
например в 4й строке, результат работы кода 3;7, а должен быть 3;5;6;7
Изменено: vasa666 - 04.02.2025 13:02:45
Транзитивная группировка чисел с рекурсивным поиском
 
Доброго времени уважаемые участники форума.

Задача следующая, создать формулу, которая анализируя данные в столбце E, выдаст результат, идентичный результату в колонке F.
Основная проблема заключается в правильной обработке строк 3,5,6,7. Как видно из примера, требуется поиск каждого отдельного элемента на его вхождение во все строки, добавление в общую массу всей строки где этот элемент был найден и опять поиск уже расширенной группы во всех строках поэлементно.

С проблемой бьюсь не первый день, есть некоторые решения (пример не рабочей формулы в файле, в колонке G), но пока успеха так и не достиг.

Если у кого-то есть идеи как это реализовать, буду крайне признателен.


 
Оптимизация формул при помощи ChatGPT, Оптимизация формул при помощи ChatGPT - уневирсальный промпт
 
Промпт обновлен.
Оптимизация формул при помощи ChatGPT, Оптимизация формул при помощи ChatGPT - уневирсальный промпт
 
Я не в коем разе не буду ставить под сомнение ваш богатый опыт общения с  заднеприводными, но боюсь в этот раз вы не по адресу. Возможно вам  нужно поискать свое счастье по этой тематике немного на других форумах.
Оптимизация формул при помощи ChatGPT, Оптимизация формул при помощи ChatGPT - уневирсальный промпт
 
По скольку ИИ развивается семимильными шагами, не вижу препятствий его игнорировать, а наоборот попытаться взять его на вооружение. Может бывалым экспертам оно пока не сильно актуально, но людям вроде меня, которые наизусть не знают всех функций и нюансов их применения, бывает довольно полезным получить наброски, идеи, а может и полноценную рабочую но улучшенную формулу со стороны для своих нужд.

Задача заключается в том, что бы разработать универсальный промпт для ИИ, который позволит улучать ваши формулы, почти автоматически.

Для примера делюсь с вами своим промптом, к которому я пришел спустя какое-то время. Просто вставляете в него вместо той формулы которая там написана, свою. Далее вставляете весь текст в чат с ИИ.

Будет интересно послушать ваши идеи на этот счет.

Код
Я хочу, чтобы ты стал моим оптимизатором формулы состоящей из функций в Excel. Твоя цель - помочь мне создать наилучшую формулу для моих нужд. Ты, ChatGPT, будешь чётко следовать следующему процессу: 

Пункт №1. Первым делом ты возьмешь за основу эту формулу:

=LET(b_1;obshij!$B:$B;c_1;obshij!$C:$C;d_1;obshij!$D:$D;am_1;obshij!$AM:$AM;zi;УНИК(ФИЛЬТР(b_1;(am_1=H5)*((ЕСЛИОШИБКА(ПОИСК($B$25;c_1);0))+(ЕСЛИОШИБКА(ПОИСК($B$26;c_1);0))+(ЕСЛИОШИБКА(ПОИСК($B$27;c_1);0))+(ЕСЛИОШИБКА(ПОИСК($B$28;c_1);0))+(ЕСЛИОШИБКА(ПОИСК($B$29;d_1);0))+(ЕСЛИОШИБКА(ПОИСК($B$30;d_1);0)));ЛОЖЬ));ЕСЛИМН(@zi=ЛОЖЬ;0;1;СЧЁТЗ(zi)))

Пункт №2. Далее ты создашь еще 4 подпункта:
 2.1 Первый - Пересмотренная формула: (После каждого подпункта из пункта №4, если анализом подпункта выявлены возможные улучшения формулы, примени эти улучшения, перепиши формулу, представь обновленную версию формулы. Формула должна учитывать все подпункты из пункта №3). 
 2.2 Второй - Список изменений: (Подробный список того, что было изменено в формуле и обоснование почему).
 2.3 Четвертый - Вопросы: (Задай мне любые вопросы, касающиеся того, какая дополнительная информация требуется от меня для улучшения формулы. Если вопросы не возникли, игнорируй этот пункт). 


Пункт №3. Выполняя разделы описанные в пункте №4, каждый раз вспоминай об обязательных условиях описанных в подпунктах этого пункта:
3.1 При обновлении формулы проверяй количество аргументов и синтаксис на возможные ошибки или неправильную структуру аргументов.
3.2 Не изменяй диапазоны вычислений.
3.3 Не изменяй фиксацию диапазонов вычислений.
3.3 Не изменяй имена переменных.
3.4 Разделители функций и аргументов - точка с запятой.
3.5 Все новые переменные должны быть только на английском языке и не длиннее 6 символов.


Пункт №4. Создай пункт "Шаг оптимизации", проанализируй формулу целиком и по отдельности каждую её функцию, последовательно проходя по следующему списку:



4.1 - Анализ использования каждой функции (замена используемых функций на более комплексные конструкции, если это улучшит производительность).
4.2 - Анализ структуры формулы (замена последовательности исполнения функций на наиболее оптимальные).
4.3 - Анализ логики на проверку данных (устранение избыточных проверок, замена на оптимальные).
4.4 - Упрощение работы с массивами через ЛЯМБДА (Создание пользовательских функций с помощью ЛЯМБДА для обработки сложных вычислений).
4.5 - Анализ условий (сокращение избыточных условий данных).
4.6 - Анализ вычислительной логичности (замена "тонких" мест в формуле).
4.7 - Анализ последовательности вычислений (порядок вычислений - от простого к сложному).
4.8 - Выявление прочих условий (которые мешают наискорейшему вычислительному процессу).
4.9 - Оптимизация диапазонов вычислений (Проверка диапазонов данных, чтобы убедиться, что они минимальны и охватывают только необходимые области)
4.10 - Минимизация вложенных функций (Избегать глубоких вложенных функций, где это возможно).
4.11 - Кэширование промежуточных результатов (Использование функций LET и ЛЯМБДА для кэширования промежуточных результатов).
4.12 - Анализ использования условий ЕСЛИ (Проверка на наличие многоуровневых условий и их упрощение, использование альтернативных функций (например, ВЫБОР)).
4.13 - Уменьшение количества обращений к ячейкам (Избегать повторных ссылок на одну и ту же ячейку или диапазон. Если одно и то же значение или диапазон используется несколько раз, его следует вычислять один раз и сохранять в переменной (через LET)).
4.14 - Проверка на использование матричных операций (Если возможно, заменить последовательные вычисления на матричные операции для повышения производительности).
4.15 - Оптимизация работы с текстовыми данными (Проверка использования текстовых функций, таких как ЛЕВСИМВ, ПРАВСИМВ, ПОИСК и НАЙТИ, чтобы минимизировать их влияние на производительность).
4.16 - Уменьшение количества повторных вычислений (При многократных ссылках на одну и ту же формулу или диапазон стоит рассмотреть возможность сокращения повторных вычислений)
4.17 - Оптимизация использования функций СУММПРОИЗВ, СУММЕСЛИ и СЧЁТЕСЛИ (По возможности формулы с этими функциями нужно упростить, вместо длинных условий использовать фильтры или динамические массивы). 
4.18 - Оптимизация работы с динамическими массивами (Проверка на наличие чрезмерного использования динамических массивов).


Пункт №5. Мы продолжим этот итерационный процесс: я буду предоставлять тебе дополнительную информацию, а ты будешь пошагово обновлять формулу и переходить к следующему подпункту из пункта №4 "Шаги оптимизации" для обновления формулы в подпункте №2.1 - "Пересмотренная формула", пока она не будет завершена. 

Изменено: vasa666 - 27.09.2024 02:57:36
НЕ работает FuzzyLookup из PLEX, НЕ работает FuzzyLookup с массивом внутри
 
Спасибо за разъяснения, не обратил на это внимание. Пичалька. :(  
НЕ работает FuzzyLookup из PLEX, НЕ работает FuzzyLookup с массивом внутри
 
Версия: Excel 2021 версии LTSC 2108

Встроенная функция FuzzyLookup в PLEX, не хочет работать с массивом, который формируется через ФИЛЬТР, хотя сам массив ВНЕ этой функции FuzzyLookup вполне работает.

Задача которую я хочу решить, поиск похожих значений в массиве для каждой строчки, но исключая саму строку... для которой я собственно и ищу схожести, чтоб функция FuzzyLookup не нашла тоже значение, которое собственно она и ищет.

Задача:
Чтоб в столбце "С" находился результат из массива столбца "В", НО исключая само значение для поиска.
СМЕЩ не работает с массивами, как решить?, СМЕЩ не работает с массивами, как решить?
 
Требуется сравнить построчно один столбец, с тремя близлежащими. В целом оно все работает как надо в столбце W.

Но у меня таких строк для сравнения будет по 800,000 и не один  файл, поэтому хотелось бы немного оптимизировать формулу для протяжки и более быстрого подсчета. Думал это сделать через функцию СМЕЩ, но она почему-то никак не хочет работать с массивами (пример в столбце X)

Основной смысл формулы должен быть такой, если в строчке ниже в соседних(-1, 0, 1) столбцах есть такая же пара букв, то считает единичку и потом все это суммируется, что бы знать количество совпадений построчно.
Сравнение схожести слов, Нужно как-то выявить схожесть слов.
 
Цитата
написал:
А вот у нас в школе одновременно учатся Онищенко, Анищенко, Анищинко, Аникеенко, все люди разные...
Процентом вхождения можно поиграться, интересует сам подход решения.
Сравнение схожести слов, Нужно как-то выявить схожесть слов.
 
Цитата
написал:
Здравствуйте, возможно  ТУТ  ваше решение.
Да принцип тот, что нужен однако данный функционал ищет одно совпадение из множеств, а тут задача множества объединить в одну связку.
Сравнение схожести слов, Нужно как-то выявить схожесть слов.
 
Не могу придумать как можно такое реализовать с помощью екселя, есть вот такой список фамилий:
Мардимасов
Мордимасов
Модимасов
Нординасов

Динасорвон

Первые 4 слова, видно что допущены опечатки в фамилии, но в целом они очень похожи друг на друга, последняя фамилия включает в себя все те же символы что и другие, но это явно другая фамилия, думал может разложить все фамилии на символы и сравнить количество вхождений, но тогда и последняя фамилия тоже подцепляется, а это не правильно. Нужно еще как-то учитывать и порядок символов в слове.

Задача объединить под один ID первые 4 фамилии, но чтоб в это объединение не попала последняя 5я.
Создание последовательных массивов и их сравнение, Создание последовательных массивов и их сравнение
 
Спасибо за ответы!! в целом работает.

А как теперь можно оптимизировать подобную связку?Чтоб можно было узнать о пересечении сразу в других ближайших строчках.

Код
=СУММ(МАКС(МИН(D23;D24)-МАКС(C23;C24)+1;);МАКС(МИН(D22;D24)-МАКС(C22;C24)+1;);МАКС(МИН(D21;D24)-МАКС(C21;C24)+1;))
Изменено: vasa666 - 16.06.2021 22:59:05
Создание последовательных массивов и их сравнение, Создание последовательных массивов и их сравнение
 
Цитата
Ігор Гончаренко написал:
подскажите, пожалуйста, описание задачи, если оно у вас есть))
Задача: найти наложения чисел друг на друга из разных строк
Например в строчке "6" 4827 4836
которые пересекаются на 3 числа со строчкой "7" 4834 4842
мне нужно выяснить сколько именно чисел пересекаются, в данном случаи числа 4834, 4835, 4836 входят и в 6ю строчку, и в 7ю (всего 3 числа)
Что уже показывает ячейка F7

Я пытался сделать так, из 6й строчки сделать массив, и из 7й, и потом сравнить их между друг другом на вхождение одинаковых чисел. Но у меня не получается потому что в функцию "счётеслимн" я не могу вписать массив в "диапазон_условие"
Изменено: vasa666 - 16.06.2021 21:27:33
Создание последовательных массивов и их сравнение, Создание последовательных массивов и их сравнение
 
Есть две колонки "C" "D"

Нужно в колонку "F" вывести на сколько чисел данные между строчками "6" и "7" пересекаются друг с другом

У меня получилось написать такую формулу

Код
=СУММ(СЧЁТЕСЛИМН(H6:H15;СТРОКА(ДВССЫЛ(СЦЕП(АДРЕС(C7;1);":";АДРЕС(D7;1))))))
В функцию "СЧЁТЕСЛИМН" в "условие1" у меня получилось запихнуть данные из строчки 7 в виде массива. А вот как это сделать со строчкой "6" в "диапозон_условия1" ума не приложу, без того как ее вручную разложить в колонке "H".

Или может я вообще не туда думаю, и есть более легкие пути, нужно сделать так, чтоб формулу можно было бы протянуть дальше.
Подскажите пожалуйста решение, если у кого оно есть))
Как можно оптимизировать формулу с условием сравнения
 
Похоже на то что я искал, не знал что в "лог_выражения" можно записать "равно"))
П.С.
разобрался, вы через "диспетчер имен сделали, но это подходит если у меня сравнение идет только с одним значением, а если постоянно разные?
Как можно оптимизировать формулу с условием сравнения
 
msi2102, это конечно все здорово, но я привел упрощенный вариант, чтоб было легче понимать ситуацию. Теперь упростите так же для случая когда и само выражение (2+2) и с чем сравнивают(4) генерируются из различных ячеек.
Как можно оптимизировать формулу с условием сравнения
 
Работаю с большими объемами данных, хотелось бы сократить вычисления.
В данном случаи интересует функция "ЕСЛИ".
Разберем пример:
Код
ЕСЛИ(2+2=4;2+2;"не равно")

В данном примере, екселю приходится в случае "ИСТИНА" считать значение 2 раза, в начале чтоб понять равно оно 4м или нет, а потом чтоб вывести результат.

Вопрос, как можно оптимизировать это условие, чтоб ексель считал 1 раз? и случаи если условие РАВНО, просто выводил бы полученный результат, а не высчитывал его еще раз.

По подобному принципу работает функция "ЕСЛИОШИБКА", там пишется всего один раз условие, и если ошибка, выводится то что вы укажите, а если ошибки нет, то выводится результат выражения. такая же история и с функцией "ЕСНД", а вот подобного решения для "ЕСЛИ" я не могу найти.
Макрос на Google таблицах, Нужен макрос/скрипт выводящий в колонку результат проверки орфографии.
 
Цитата
Андрей VG написал:
В ТЗ упомянуто лишь то, что нужен скрипт для Google Spreadsheet, а вот о том, что нужно использовать только сервис  https://google.com/tbproxy/spell?lang=ru  проверки правописания ни слова. Будьте столь любезны процитировать и показать сию чёткость.
1) У меня не написано что нужна проверка именно через https://google.com/tbproxy/spell?lang=ru (так решил предыдущий исполнитель) на сколько я понимаю это раньше был API от гугла для проверки орфографии. Какой именно инструмент у Google используется например для проверки орфографии в Google Docs я не знаю.

2) На приведенном ниже скрине, выделено средствами какого сервиса должна происходить проверка. Яндекс явно не является средством гугла.(который предложил предыдущий исполнитель)
Макрос на Google таблицах, Нужен макрос/скрипт выводящий в колонку результат проверки орфографии.
 
Цитата
R Dmitry написал:
Человеку нужен только гугл сервис google https://google.com/tbproxy/spell?lang=ru не работает.В сообщении нет четко заявленных требований что необходим только google.


1) В  ТЗ четко написано про гугл, куда точней-то?

2) То что будет проверяться, особой роли не играет, вам в личных сообщениях я показал пример как их обрабатывает вполне успешно гугл докс. Гугл таблицы их обрабатывают так же, но они заменяют слово на предлагаемое, а мне нужно его написание рядом с проверяемым.

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

Поиск исполнителя возобновлен.
Изменено: vasa666 - 17.02.2021 13:20:14
Макрос на Google таблицах, Нужен макрос/скрипт выводящий в колонку результат проверки орфографии.
 
Исполнитель выбран.
Изменено: vasa666 - 16.02.2021 17:44:29 (изменение статуса)
Макрос на Google таблицах, Нужен макрос/скрипт выводящий в колонку результат проверки орфографии.
 
Нужен макрос/скрипт, который будет проверять орфографию каждого слова, и при условии варианта исправления, выводить этот результат в соседнюю ячейку.

ТЗ.
1) макрос/скрипт проверяет слова из колонки "F" на орфографию средствами гугла, при возможном варианте исправления, выводит этот результат в соседнюю ячейку в соседнем столбце "G".
2) Если исправление от гугла отсутствует, соседняя ячейка остается пустой.
3) макрос/скрипт сам определяет сколько строк со словами занято и подлежит проверке.

Прочие моменты:
1) Бюджет до 1500р
2) Работу готов принять по видео через воцап/зум/скайп или другими способами отражающими работоспособность макроса.
3) После моей оплаты, исполнитель обязуется прислать НЕ з апароленный / НЕ зашифрованный результат работы, который в последствии доступен для доработки.
Изменено: vasa666 - 16.02.2021 03:57:58 (дополнил)
Макрос провери фамилий., Нужен макрос который сверяет фамилии из файла с фамилиями в листе Excel'я.
 
Все выполнено быстро и качественно.
Оплатил.
Изменено: vasa666 - 13.12.2020 13:55:15
Макрос провери фамилий., Нужен макрос который сверяет фамилии из файла с фамилиями в листе Excel'я.
 
Нужен макрос который сверяет фамилии из файла, с фамилиями в листе Excel'я.
ТЗ.
1) Макрос сверяет фамилии в колонке "Е", с фамилиями из файла (в файле будет 318.000 строк). Если файл с фамилиями нужно перевести в какой-то другой формат/кодировку, для более быстрой работы, готов выслушать предложения.
2) Если макрос НЕ находит полного совпадения при сверке данных из файла, то в столбце "АЕ", напротив отсутствующей фамилии ставит текстовую метку "к1"
3) Привязать макрос на кнопку.
4) При повторном нажатии на кнопку запуска маркоса, она очищает все значения в столбце "АЕ". и они проставляются заново.
5) Макрос должен быть оптимизированным, т.к. файл с фамилиями будет возрастать, так же в самой Ексельке будет от 2000 до 18000 строк под проверку.

Прочие моменты:
1) Бюджет до 1000р
2) Работу готов принять по видео через воцап/зум/скайп или рабочей экселькой на почту (зашифрованной/закодированной и т.д.)
3) После моей оплаты, исполнитель обязуется прислать НЕ запароленный / НЕ зашифрованный результат работы.
ГИПЕРССЫЛКА - на место в документе, Нужн работчая формула, а в помощи майкрософт ошибка в подсказках
 
Цитата
БМВ написал:
видимо чтоб в случае прокрутки встало не последней строкой, для лучшей визуализации, только вот когда бежим вниз - ок, а когда вверх, то надо  -15
Вы совершенно правы, для лучшей визуализации, -15 обычно не требуется после сортировок, т.к. применение фильтра обычно сокращает число вариантов, и наполнение документа сокращается вверх, по этому после отмены фильтров, требуется прокрутить его вниз.

В общем этот нюанс обсудили, кому нужно, он его учтет ;)  Извините, что сразу его не озвучил.
Изменено: vasa666 - 04.04.2018 16:49:10
ГИПЕРССЫЛКА - на место в документе, Нужн работчая формула, а в помощи майкрософт ошибка в подсказках
 
В общем всем огромное спасибо, благодаря вам  смог наконец реализовать гиперссылку в документе которая меняется в зависимости от нужных мне параметров, в данном случаи есть журнал записи клиентов на процедуры, и после фильтрации, положение документа само сабой сбивается, и чтоб не крутить колесиком, ссылка автоматически перекидывает к сегодняшней дате ;)
думаю если покумекать, можно докрутить такие возможности как: прокрутка к последней заполненной ячейке, прокрутка листа до нужного значения и т.д.

Кому нужно, пользуйтесь
ГИПЕРССЫЛКА - на место в документе, Нужн работчая формула, а в помощи майкрософт ошибка в подсказках
 
Цитата
Сергей написал:
вот вариант
А еще почему-то эта формула не работает, если попытаться перейти к ячейке в рамках одного листа
Это как-то можно поправить?
ГИПЕРССЫЛКА - на место в документе, Нужн работчая формула, а в помощи майкрософт ошибка в подсказках
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

Сергей, работает, при тестировании выяснилась интересная особенность, если в имени файла присутствует ТИРЕ, до данная формула не срабатывает)) Очередной глюк Майкрософт)) В моём файле такая же формула, но в нем она не работает))

Спасибо за рабочий вариант
ГИПЕРССЫЛКА - на место в документе, Нужн работчая формула, а в помощи майкрософт ошибка в подсказках
 
Вот, посмотрите.
Изменено: vasa666 - 04.04.2018 16:04:38
Страницы: 1 2 След.
Наверх