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

Страницы: 1
Транзитивная группировка чисел с рекурсивным поиском
 
Доброго времени уважаемые участники форума.

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

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

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


 
Оптимизация формул при помощи 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 с массивом внутри
 
Версия: Excel 2021 версии LTSC 2108

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

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

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

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

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

Динасорвон

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

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

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

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

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

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

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

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

По подобному принципу работает функция "ЕСЛИОШИБКА", там пишется всего один раз условие, и если ошибка, выводится то что вы укажите, а если ошибки нет, то выводится результат выражения. такая же история и с функцией "ЕСНД", а вот подобного решения для "ЕСЛИ" я не могу найти.
Макрос на Google таблицах, Нужен макрос/скрипт выводящий в колонку результат проверки орфографии.
 
Нужен макрос/скрипт, который будет проверять орфографию каждого слова, и при условии варианта исправления, выводить этот результат в соседнюю ячейку.

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

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

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

В ней где-то ошибка, или в синтаксисе или вообще,

При копировании ее в ячейку, эксель ругается.

помогите её сделать рабочей)) Что и как она должна делать, описано в самой подсказке на странице помощи, где ее примером и приводят.

Страницы: 1
Наверх