DJMC
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Есть вот такой код, который считает количество совпадений в строках по символьно, выводит для двух и трех совпадений данные, скажите можно пожалуйста можно ли данный код переделать под условие: 1. выводить только наибольшее количество совпадений 2. добавить не только сравнение по 2 и 3 столбцам, а до 10 столбцов, количество символов проверяемых на совпадение всегда 15. Код: 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 | p.s. Если нужно могу приложить файл. | Всего записей: 12304 | Зарегистр. 26-09-2005 | Отправлено: 09:53 10-09-2021 | Исправлено: DJMC, 09:54 10-09-2021 |
|