Страницы: 1 2 След.
RSS
Найти массив, где содержатся нулевые строки
 
Во вложении пример с начальными данными, 27 строк и с конечными данными 3 строки, можно как то это получить макросом, формулой, если на первой странице строки будут меняться и их количество также, или это просто подгон данных?
Изменено: vikttur - 03.09.2021 13:10:27
 
Объясните более подробно механизм превращения исходных данных в итоговые.
Кому решение нужно - тот пример и рисует.
 
А по какому принципу остались именно эти три строки
Изменено: Msi2102 - 03.09.2021 12:59:10
 
Цитата
DJMC написал:
можно как то это получить макросом, формулой,
"это" - это что?
вы предлагаете сначала угадать что нужно получить))), а потом рассказать как это получить?

давайте сосредоточимся на определении понятия "ЭТО"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, а слабо догадаться :D , или по Вашему всё должен делать ТС
 
Пытливый и   Msi2102
мне нужно найти массив, где содержатся нулевые строки...Три строки с нулевыми тиражами обладают одним ценным качеством. В них либо два варианта исхода с соотношением 1 к 2, либо один исход в трех ячейках(см пример во вложении)
то есть мне нужно найти все возможные такие варианты, где если взять и сверить каждую строку с каждой получится 4 общих значения, а 11 разных значений.
 
DJMC,
уже год или более регулярно приносит сюда 15 колонок с данными, а мы добывает ЭТО каждый раз это что-то новое))

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

это там)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко
посмотрел данный фильтр, он выводит только верхнюю строку, может конечно я что то не так делаю, но это совсем не похоже на то что мне нужно было.
 
Цитата
DJMC: это совсем не похоже на то что мне нужно было
если бы хоть одна живая душа на этой Планете знала, что вам нужно, то вы бы давно свой вопрос решили  :D
А так даже вы не знаете, либо ну совсем никак объяснить вот уже почти год как не можете (в том числе за деньги, в том числе крысам на стороне)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
если бы хоть одна живая душа на этой Планете знала, что вам нужно
ну слава КПСС, а то я думал один ничего не понимаю, уже комплексовать начал  :D  
 
Jack Famous исходные данные почти всегда одни и те же, но задачи разные.
вот постарался прям максимально подробно к первому файлу описать что же мне нужно.

ТЕОРИЯ.
1. В истории тиражей есть тиражи, которые совпадают с текущим от 0 до 12 исходов. (13 катю пару раз всего видел). Тиражи с большими совпадениями были как правило очень давно (напрмер, в 2012-14 годах), кати поменьше - чаще, но не менее года
2. Чем выше категория, тем меньше тиражей в истории, которые совпали (т.е. строк с 12й катей будет 1 из 2500,11 - от 4 до 6, 10ка - 6-10)
3. Нулевых строк (0 совпадений с текущим тиражом) 5-6 из 2500.
4. Допустим, мы сможем 2500 строк сократить до какого-то разумно плотного пакета (например, до 100) с сохранением призовых строк. Но как их найти в таком пакете? Я не могу придумать, какие признаки у них должны быть
5. НО. Также мы сможем найти массив, где содержатся нулевые строки...Три строки с нулевыми тиражами обладают одним ценным качеством. В них либо два варианта исхода с соотношением 1 к 2, либо один исход в трех ячейках(см пример)
6. Обратка от этих исходов даст джека. В данном случае - 4 двойника и 11 одинаров. Норм. Тираж реальный.
СОВПАДЕНИЯ
0 мин Вот и задача задач. Найти в массиве три строки, в которых имеется такое соотношение исходов в столбце номера игры, как в примере
9 макс Возможно, есть такой алгоритм, который перебирал бы строки и отбирал подходящие по признакам
Если по этим же признакам найдутся другие три строки, но они не были нулевыми, то они дадут много двойников.
Изменено: vikttur - 04.09.2021 10:41:46
 
))))))))))))))))))))))))))))))
теория - это отлично!
а задача-то какая?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко
Вот и задача задач. Найти в массиве три строки, в которых имеется такое соотношение исходов в столбце номера игры, как в примере

Возможно, есть такой алгоритм, который перебирал бы строки и отбирал подходящие по признакам, у меня есть файл который перебирает две строки, возможно он поможет добавить третью,
в строку данные вставляем значения, и запускаем обновить данные, на листе Подсчет совпадений появляется совпадения между двух строчек в колонках Данные
и Данные 1, нужно добавить еще колонку данные 2, нужно добавить сравнение с третьей строкой, это возможно сделать?
 
"исходы" - это что такое?
"такое же соотношение исходов" - а это что такое? чем "такое же" соотношение отличается от "не такого же"?
"столбец номера игры" - это вообще что за срань? где это? (в вашем примере)

и задача у вас какая? что решаете?
Изменено: Ігор Гончаренко - 04.09.2021 14:44:34
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко
забываем все что я сказал раньше, объяснять это явно не мое, Вы можете помочь сделать из файла что я дал, чтобы он делал сравнение по трем столбцам, сейчас в нем идет сравнение по двум столбцам, через PQ делается все.
 
могу.
по каким 3-м столбцам?
какое сравнение?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко
сейчас файл сверяет каждый купон с другими на совпадения, то есть он берет первый купон из трех
12х2хх121122х11
и сверяет на количество совпадений с оставшимися двумя, и получается всего 6 купонов, где показывает количество общих вариантов, а я хочу чтобы он сверял не два купона, а три между собой и фильтр показывал общее количество совпадений между 3 купонами.
Добавил в файл еще три купона, получается из 6 купонов при сравнение по два купона между собой получилось уже 30 вариантов.
Сколько теперь будет вариантов если сравнить по три купона между собой.

на примере из файла, берем первую строчку в ней идет
12X2XX121122X11

и сверяем с 12X2X222XX12X11 и 1X2222121X2212X между ними 4 общих события
потом сверяем также первую строчку  12X2XX121122X11 и вторую 1X2222121X2212X третью теперь другую берем 22X2XX121122X11

и так все между собой
Изменено: DJMC - 04.09.2021 21:13:22
 
что такое купон? где его взять и с чем сверять?
у вас есть файл пример?
видите-ли в Excele нет купонов, есть: книги, листы, строки, колонки, ячейки
не нужно рассказывать про купоны, про нулевые строки и пр. для вас это, видимо, какие-то вполне определенные вещи, для ВСЕГО ОСТАЛЬНОГО ЧЕЛОВЕЧЕСТВА (в т.ч. для меня) это НИЧЕГО не значащие слова

и так:
1. исходные данные - вот они
2. в результате нужно получить - вот что
3. результаты из исходных данных отбираются следующим образом
это все, что мне нужно знать о вашей задаче и все, что я надеюсь прочитать в следующем сообщении
сколько будет стоить решение - сообщу дополнительно и лично
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко
во вложении файл с техническим заданием, примером что должно получиться

На лист данные вставляются строки N количество
на листе подсчёт данных сейчас идет сравнение каждой строчки с каждой другой строчкой из листа данных, а мне нужно чтобы было сравнение одной строки с двумя строками, ниже пример что должно появится на странице подсчет совпадений

Данные
12X2XX121122X11
Данные.1
12X2X222XX12X11
Данные.2
1X2222121X2212X
Число совпадений
4
 
Доброе время суток
Цитата
DJMC написал:
было сравнение одной строки с двумя строками
Вариант
 
Андрей VG
спасибо, работает как надо, правда не очень удобно что на второй странице, было бы удобнее если бы появилась новая страница, так как в этой странице вставляются исходные данные, но это уже придирки. Огромное Вам спасибо, задача решена.
 
Андрей VG
Можете пожалуйста сказать как Вы это сделали, если я хочу добавить еще столбцы, чтобы сверять и по 4 и так до 12 строчек, чтобы не плодить темы, и не бесить людей одними и теме же вопросами.
 
Цитата
DJMC написал:
это сделали
В Power Query. На всякий случай код
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    addRowId = Table.AddIndexColumn(Source, "rowId", 1),
    base1 = Table.RenameColumns(addRowId, {{"Данные", "Данные.1"}, {"rowId", "rowId.1"}}),
    base2 = Table.RenameColumns(addRowId, {{"Данные", "Данные.2"}, {"rowId", "rowId.2"}}),
    base3 = Table.RenameColumns(addRowId, {{"Данные", "Данные.3"}, {"rowId", "rowId.3"}}),
    join = Table.Join(Table.Join(base1, {}, base2, {}), {}, base3, {}),
    needed = Table.SelectRows(join, each [#"rowId.1"] < [#"rowId.2"] and [#"rowId.2"] < [#"rowId.3"]),
    calc = Table.AddColumn(needed, "Количество совпадений", (rec) =>
        List.Count(
            List.Select(
                List.Transform(
                    List.Zip({Text.ToList(rec[#"Данные.1"]), Text.ToList(rec[#"Данные.2"]), Text.ToList(rec[#"Данные.3"])}),
                    each List.Count(List.Distinct(_))
                ),
                each _ = 1
            )
        )
    )
in
    calc

Сразу скажу, что алгоритм построения сочетаний из n по 3 строки, мягко говоря, "детский". Но, боюсь в Power Query построить полноценно генерацию сочетаний в лексикографическом порядке будет весьма не просто, и не факт, что он будет работать быстро.
P. S. Учтите, что =ЧИСЛКОМБ(100;4) = 3 921 225 - не хватит строк на листе для вывода.
Интересно, вы будете глазами анализировать даже =ЧИСЛКОМБ(100;3) = 161 700?
 
Андрей VG,
а можешь мне обьяснить в чем задача?
(похоже от  DJMC этого не добиться)
если обьяснять лохам от понимания задач - облом, можно не обьяснять. лохи это поймут, им не первый раз)))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
а можешь мне обьяснить в чем задача?
Привет, Игорь.
Я конкретно решал эту задачу
Цитата
DJMC написал:
нужно чтобы было сравнение одной строки с двумя строками
То есть. Дан массив ячеек в столбце. Каждая ячейка содержит текст равный по длине тексту в других ячейках. Необходимо составить сочетания по три ячейки. Далее, сравнить три их текста посимвольно. Если в текущей позиции все три текста содержат один и тот же символ, то считаем это совпадением. Соответственно, нужно посчитать количество таких совпадений.
А что решает ТС вообще, понять не возможно уже почти год. Определений нет, те слова и словосочетания какие он использует, на мой взгляд, никак нельзя сопоставить с тем что есть в исходных данных. Например, если верно предположение, что купон - это текст в ячейке, то как можно из
Цитата
DJMC написал:
берет первый купон из трех ... и сверяет на количество совпадений с оставшимися двумя, и получается всего 6 купонов
процесс получения не описан. Видимо, предполагается прошерстить все посты ТСа и по ним построить некоторое логически связанное содержимое.
Найдётся ли такой желающий... Вопрос риторический.
 
Добрый день, прошу прощение за свой русский язык,  Андрей VG правильно описал задачу
Цитата
Дан массив ячеек в столбце. Каждая ячейка содержит текст равный по длине тексту в других ячейках. Необходимо составить сочетания по три ячейки. Далее, сравнить три их текста посимвольно. Если в текущей позиции все три текста содержат один и тот же символ, то считаем это совпадением. Соответственно, нужно посчитать количество таких совпадений.
и так еще раз попробую теперь сформировать что я хочу получить, у меня есть массив ячеек, он огромный, более 2000 вариантов, но на основании многолетних тестов я знаю следующее, что в каждом массиве столбцов содержится N количество столбцов ( от трех ячеек и выше) которые имеют между собой  от 7  и выше совпадений, а также есть столбцы, которые полностью противоположны друг другу и имеют 0 совпадений между собой.

Во вложении файл, где внесены данные(лист называется пример) в нем изначально 11 строк, дабы пройти по размеру файла на форуме, а потом показано что мне удалось получить через сравнение по трем показателем формулой от  Андрей VG , и мой главный вопрос, можно ли это сделать с большим массивом, где содержится 2000 столбцов, я вижу что эксель не справляется с этим, так там есть ограничения, но может быть создать можно какое то правило, к примеру если от 1 до 6 совпадений идет между тремя столбцами их не записывать в итоговую таблицу, все совпадения больше 7, также хочется попробовать следующее реализовать сравнить между собой 40 строк и в них должно быть от 3 до 9 совпадений. Как найти эти 40 строк из 2000 строк.
 
Цитата
Андрей VG написал:
В Power Query. На всякий случай код
спасибо за код, пытаюсь добавить еще 1 строку, 4 для сравнения, но получается ошибка


Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    addRowId = Table.AddIndexColumn(Source, "rowId", 1),
    base1 = Table.RenameColumns(addRowId, {{"Данные", "Данные.1"}, {"rowId", "rowId.1"}}),
    base2 = Table.RenameColumns(addRowId, {{"Данные", "Данные.2"}, {"rowId", "rowId.2"}}),
    base3 = Table.RenameColumns(addRowId, {{"Данные", "Данные.3"}, {"rowId", "rowId.3"}}),
    base4 = Table.RenameColumns(addRowId, {{"Данные", "Данные.4"}, {"rowId", "rowId.4"}}),
    join = Table.Join(Table.Join(base1, {}, base2, {}), {}, base3, {}, base5, {}),
    needed = Table.SelectRows(join, each [#"rowId.1"] < [#"rowId.2"] and  [#"rowId.2"] < [#"rowId.3"] and [#"rowId.1"] < [#"rowId.4"] and [#"rowId.2"] < [#"rowId.4"]  and [#"rowId.3"] < [#"rowId.4"]),
    calc = Table.AddColumn(needed, "Количество совпадений", (rec) =>
        List.Count(
            List.Select(
                List.Transform(
                    List.Zip({Text.ToList(rec[#"Данные.1"]), Text.ToList(rec[#"Данные.2"]), Text.ToList(rec[#"Данные.3"], Text.ToList(rec[#"Данные.4"])}),
                    each List.Count(List.Distinct(_))
                ),
                each _ = 1
            )
        )
    )
in
    calc


Expression.SyntaxError: Ожидался токен Comma.  
если я правильно понял, то ошибка идет в строке  needed =
 
DJMC, как минимум, у вас base1-4 (переменные шагов PQ), а в строке 8 есть base5
Думаю, то вам будет тяжело что-либо адаптировать без хотя бы минимальных знаний …
Изменено: Jack Famous - 06.09.2021 09:44:14
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1 2 След.
Наверх