после первой итерации по объединению массивов (уменьшению их количества) возможны следующие итерации по объединению, т.е. размер рассматриваемых данных будет снижаться.
Цитата
написал: массиве 2 389 104 строк
сейчас заранее исключил массивы, которые вообще не имеют элементов, вышло 31 344 строк.
удалю те данные, у которых нет никаких общих элементов между собой, а также те данные, которые имеют пустые значения (не имеют элементов вовсе) - этот этап в самом начале сделаю, самым первым шагом. Уверен, что количество сократится. А далее анализировать данные, начиная с тех массивов, которые имеют наибольшее количество элементов и наибольший процент сходства. И далее по убыванию рассматривать вплоть до массивов с 1 элементом и, соответственно, с одним сходством. В конечном итоге объединятся массивы, и их количество уменьшится с 7000 шт до какого-то значения.
С помощью формулы =СЧЁТЕСЛИ(), и далее подсчет количества одинаковых элементов по количеству строк с ИСТИНА. И так далее с каждым сравниваемым массивом.
Цитата
написал: Макрос
Спасибо большое! На малом количестве элементов (или строк) работает отлично, на большем количестве элементов, я так понимаю, не хватает места Excel (ошибка overflow) - подсвечивается строка #9. При сокращении элементов подсвечивает строку #29.
Возможно ли прописать условие, например, чтобы не отображались (отбрасывались) "нулевые" сходства. Или, например, вывод производился в текстовый документ?
Подскажите, пожалуйста, как правильно выстроить алгоритм сравнения двух массивов с данными между собой (столбцы А и B) на предмет количества одинаковых элементов, которые входят и в первый массив, и во второй, т.е. заполнение столбца I.
при выставлении источника из другой книги не получается счёт страниц сделать
Код
let
Source = Excel.Workbook(File.Contents("C:\Users\......\ABVGD.xlsm"){[Name="Таблица1"]}[Content],
Custom1 = List.Count(Source[Количество страниц в документе]),
Custom2 = List.Generate(
()=> [i=0, a=1 ],
each [i]<Custom1,
each [i=[i]+1, a=Source[Количество страниц в документе]{[i]}+[a]],
each [a]),
Custom3 = Table.FromColumns(Table.ToColumns(Source)&{Custom2},Table.ColumnNames(Source)&{"a"})
in
Custom3
Всем здравствуйте, помогите пожалуйста разобраться - никак не могу понять как сослаться на сумму вышестоящих строк в PQ как по аналогии с документов в примере.
Код
= Table.AddColumn(#"Добавлен индекс", "Пользовательский.2", each {[Индекс]-1}[Количество страниц в документе]+{[Индекс]}[Количество страниц в документе])
Ячейка должна считать кол-во заполненный ячеек диапазона, но при этом это значение должно увеличиваться на количество совпадений значений при построчном сравнении диапазонов., Ячейка Е3 должна считать кол-во заполненный ячеек диапазона E4:E6, но при этом это значение должно увеличиваться на количество совпадений значений при построчном сранении диапазонов С4:С6 и E4:E6, пустые значения за совпадения не считать.
Как задать, чтобы открывались все файлы или может быть просто открывать все файлы в одной папке? Или условие, что открываются первые два файла в папке, затем следующие два (файлы же рядом будут находится без плюса и с плюсом в названии - первая двойка и т.д.)
И диапазон PrintArea в плане количество строк может быть разный, столбцы всегда одни и те же. Как его задать вариабельно?
Подскажите, пожалуйста, как автоматизировать процедуру по переносу данных из столбца H листа worksheet из версии файла "Название1+" в тот же столбец H версии файла "Название1". Наименования файлов отличаются только наличием "+" в конце.
Помогите пожалуйста с одной загвоздкой - в определенном одном и том же столбце содержатся данные с различным количеством символов, мне необходимо, чтобы в ячейки, которые ДЛСТР()=9, помещался символ 0 перед первым символом (из-за формата он ячейки он удалился).
Алгоритм представляется таким 1. Создаётся первая шапка таблицы 2. Под ней строка, содержащая данные, маркированные "1" - они распределяются по своим столбцам 3. Далее создается строка в первом столбце заданный Заголовок, во втором столбце (6 объединённых столбцов), содержаться данные, маркированные "2". В зависимости от их количества - создается такое количество строк и по ним распределяются данные. 4. Создаётся вторая шапка таблицы 5. Проверяется наличие данных, маркированных "5". В случае наличия создаётся строка с наименованием "А и Е". В зависимости от количества данных под "5" - создается такое количество строк и по ним распределяются данные. В случае отсутствия переход к п.6 6. Проверяется наличие данных, маркированных "6". В случае наличия создаётся строка с наименованием "Л". В зависимости от количества данных под "6" - создается такое количество строк и по ним распределяются данные. В случае отсутствия переход к п.7 7. Проверяется наличие данных, маркированных "7". В случае наличия создаётся строка с наименованием "ГЛ". В зависимости от количества данных под "7" - создается такое количество строк и по ним распределяются данные. После создается строка с заголовком "МВВГМ" и пустая строка под ней. В случае отсутствия - перейти к следующему циклу.
Скрытый текст
Во вкладке "Исход" отмечена исходная таблица, из которой данные переносятся в таблицу 2 на листе "результат". Переносу подлежат данные, маркированные номерами 1, 2, 5, 6, 7 (причем 5,6,7 могут встречаться в таблице в разных вариациях, а могут не встречаться вовсе) Данные переносят всегда по одному принципу, который через равно проставлен в листе Результат. Данные, промаркированные 1, помещаются в первую строку новой таблицы в таком же порядке столбцов (за исключением пропущенных - A,C,F,G,H); Данные, промаркированные 2, помещаются в строки под 1, и их количество зависит соответственно от количества проставленных 2; Данные 3 и 4 пропускаются; Данные 5, имеющие код длиной 12 символов, помещаются под создаваемую строку с наименованием "А и Е", количество подстрок зависит от количества проставленных "5" на исходном листе. В случае их отсутствия — пропуск, не создаётся строка "A и Е"; Данные 6, имеющие код длиной 15 символов, помещаются под создаваемую строку c наименованием "Л", количество подстрок зависит от количества проставленных "6". В случае их отсутствия — пропуск, не создаётся строка "Л"; Данные 7, имеющие код длиной 10 символов, помещаются под создаваемую строку c наименованием "ГЛ", количество подстрок зависит от количества проставленных "7". После их добавления ниже создается строка "МВВГМ" + пустая строчка (МВВГМ и пустая строка создается только в случае наличия строки ГЛ [а она в свою очередь зависит от наличия "7" на исходном листе {или 10-значного шифра}]). В случае кода отсутствия 7 — пропускаются, не создаётся строка "ГЛ" и "МВВГМ". Далее цикл повторяется
Задача состоит в копировании данных из таблицы №1, имеющей один формат, в таблицу №2, отличающуюся по формату от таблицы №1. Каждый элемент таблицы №1 промаркирован (от 1 до 7).
Ниже приклеплен пример. Полный файл могу прислать в ЛС. Сроки день-два По стоимости не знаю — предложите варианты
Число, состоящее из 12 символов (именно символов, могут присутствовать и другие знаки) и находящееся в столбце А, сцеплялось с числом, находящимся в столбце А и состоящим из 10 символов в пределах одной таблицы, заканчивающейся одной строкой до шапки следующей таблицы. Сцепление производится в строчках напротив чисел из 10 символов, в заданном столбце (к примеру - K) на том же листе.
Получается если вручную: СЦЕПИТЬ(ЧИСЛО из 12 символов;"-";ЧИСЛО из 10 символов;"-";НОМЕР);"") НОМЕР - порядковый номер, который имеет сквозную нумерацию через все блоки
Я скорее всего не совсем точно выразился. Да, сейчас так и происходит окрашивание - проставляются вспомогательные точки. Возможно ли окрашивание без проставления точек, беря в расчёт ссылку на ячейку BQ?
Суть вопроса заключается в том, как сделать, чтобы необходимое количество ячеек в диапазоне F:BN окрашивались в соответствии со значением в ячейке BQ, которое задаёт нужное количество ячеек для закрашивания. Далее, в строке ниже, со следующей ячейки окрашивание продолжалось.