Для добавления возможности работать с регулярными выражениями в PQ использовал статью https://www.planetaexcel.ru/techniques/7/13310/. Хотел дополнительно реализовать удаление дубликатов внутри функции JS через конструкцию new Set
Код
var arr = [...new Set(x.match(pattern))];
var result = arr.join(delim);
но PQ выдал ошибку "Expression.Error: Элементов в перечислении было недостаточно". Решил все таки задачу с помощью самого PQ, через Text.Combine(List.Distinct(Text.Split(... Может кто-то сталкивался с подобной задачей и все таки есть решение через JS?
И еще вопрос, опять же с JS - есть ли возможность отсортировать вывод результатов поиска по рег. выражению по группам поиска, а не по очередности вхождения в исходную строку? Дело в том, что код
Код
let fx=(txt as text, regex as text, delim as text) =>
Web.Page(
"<script>
var x = '" & txt & "';
var delim = '" & delim & "';
var pattern = /" & regex & "/gm;
var result = x.match(pattern).join(delim);
if (x.match(pattern)!= null) {
document.write(result);
} else {
document.write(null);
}
</script>")[Data]{0}[Children]{0}[Children]{1}[Text]{0}
in
fx
выдает найденные подстроки в том порядке, в котором они находятся в подстроке, а нужно что бы согласно условиям поиска, разделенных | в рег. выражении.
Здравствуйте! Есть таблица, содержащая список файлов с полями "Имя", "Путь", "Дата создания", и др. Названия файлов могут повторяться, но в разных папках и с разными датами создания. Из этого списка нужно отобрать те строки в которых Дата модификации максимальна, но список должен содержать исходный набор полей. Если делать с помощью группировки, то придется отсекать поле Путь, что бы найти максимум по полю "Дата создания", а мне нужно узнать где находится файл с последней датой создания.
В корпоративной сети есть сервис поиска материалов через web/https. Я ввожу наименование материалы и сервис выдает список наиболее подходящих МТР, в виде таблицы. Возможно ли из excel/vba формировать запросы к этому сервису и обрабатывать полученные результаты? Обработка полученных результатов и выбор наиболее подходящего из найденных - это другой вопрос. Какие условия для этого необходимы, например поддержка HHTP API и др? Дело в том, что список позиций/наименований которым нужно подобрать из НСИ исчисляется тысячами, и в ручную это оооочень долго.
Подскажите, возможно ли отобразить в сводной таблице итоговый столбец по строкам не последним, а например четвертым п счёту. В таблице во вложении общий итог - крайний правый столбец, а нужен в позиции выделенной желтым.
Есть таблица Таблица16 Формула подсчёта количества строк по двум условиям даёт результат = 1 =СЧЁТЕСЛИМН(Таблица16[Наименование];"*"&СЖПРОБЕЛЫ([@Наименование])&"*";Таблица16[Дата регистрации];[@[Дата регистрации]])
жирным выделено условие проверки вхождения искомой подстроки в поле [Наименование]
Возможно ли найти позицию этой строки в таблице Таблица16, где одно из условий - вхождение нужной подстроки? Вариант использования функций ВПР и ИНДЕКС, в случае с двумя условиями, проверяет только точное совпадение с искомой строкой: =ИНДЕКС(Таблица16[Состояние];ПОИСКПОЗ(1;(Таблица16[Наименование]=СЖПРОБЕЛЫ([@Наименование]))*(Таблица16[Дата регистрации]=[@[Дата регистрации]]);0))
Во вложении пример, в итоговой таблице при точном совпадении Наименования связка Индекс+ПоискПоз отрабатывает, как надо.
Здравствуйте! Подскажите, как реализовать вычисление максимального значения с дополнительным условием по другому полю (столбцу) в PowerQuery и суммирование по условию? В TSQL это делал, а вот здесь затруднения.
Пример исходной таблицы и нужной во вложении Книга2.xlsx(32.04 КБ)
Здравствуйте! Возможно ли частично транспонировать таблицу, т.е. преобразовать значения в столбцах в значения строки, причем значения некоторых левые столбцов исходной таблицы оставить без изменений? Количество транспонируемых столбцов в строки переменная величина.
Пример во вложении (Книга2). Синяя таблица - исходная, в которой колонки с датами содержат значения, преобразуемые в строки, колонка "Тип значения" содержит названия добавляемых колонок в новой таблице. Желтая - транспонированная таблица.
Есть таблица в которой строки - это активности (работы), колонки - название работы, плановая дата начала, окончания, фактическая дата начала, окончания. Нужно подсчитать количество строк для которых работа просрочена, т.е. колонка план. дата начала < чем факт. дата начала и аналогично с датой окончания. СЧЁТЕСЛИМН, как я понял не умеет сравнивать разность колонок, например следующая запись будет не верной (выделено) =СЧЁТЕСЛИМН(Данные!B:B;[@Шифр];Данные!D:D;"<>";Данные!L:L-Данные!F:F;"<1")
Возможно ли как то реализовать формулу подсчёта без использования VBA и создания промежуточных столбцов в исходной таблице, для подсчёта разности между сравниваемыми столбцами?
Здравствуйте! Подскажите, в чём может быть причина возникновения ошибки и как её локализовать?
Тип всех данных поставил "any". Создал отдельный лист с данными, оставив только минимальный набор колонок (10 столбцов) В итоге запрос сработал без ошибок.
Не рабочий запрос:
Код
let
Источник = Excel.CurrentWorkbook(){[Name="СтатусПоставки"]}[Content],
#"Повышенные заголовки" = Table.PromoteHeaders(Источник, [PromoteAllScalars=true]),
#"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{
{"Пп", type any},
{"ОР", type any},
{"Производство", type any},
{"Наименование проекта", type any},
{"СПП-элемент", type any},
{"Комплектовщик", type any},
{"Куратор", type any},
{"КСП", type any},
{"Часть проекта", type any},
{"Материал", type any},
{"Наименование материала по РВ", type any},
{"Наименование материала в заявке", type any},
{"Наименование ТМЦ", type any},
{"Ед. изм.", type any},
{"Кол-во к закупу", type any},
{"Закупщик", type any},
{"Стоимость", type any},
{"Заявка", type any},
{"Источник", type any},
{"Срок начала реализации проекта", type any},
{"Срок окончания реализации проекта", type any},
{"Дата создания Заявки", type any},
{"Дата Поставки По Заявке", type any},
{"Статус поставки", type any},
{"Статус корректный", type any},
{"Дата статуса", type any},
{"Номер контракта", type any},
{"Дата Поставки Из договора", type any},
{"Прогнозная дата поставки", type any},
{"Договор подряда", type any},
{"Дата оприходования на склад", type any},
{"Учитывать", type any},
{"Прогнозный срок перемещения на подрядчика ", type any},
{"Перемещение на склад подрядчика", type any},
{"Процент выполнения поставки", type any},
{"Не вовлеченные ТМЦ", type any},
{"Стоимость НВИ", type any},
{"Причина возникновения НВИ", type any},
{"Комментарий Планирование", type any},
{"Комментарий Закупщика ", type any},
{"Наличие риска", type any}})
in
#"Измененный тип"
Группировка данных, условие на функцию-агрегатор (аналог СУММЕСЛИМН(), подсчёт уникальных значений в рамках группировки), Условие на группировку и вычисляемое поле
Может кто то сталкивался с такой задачей, как вычислить сразу несколько агрегатов, для каждого из которых разные условия [не]включения одной и той же записи исходного набора. Например, вычисление количества чисел больше и меньше 10 — отдельными полями.
В случай SQL, код, например, может быть таким:
Код
Код для PostgreSQL
SELECT
count(*) FILTER(WHERE prime < 10) countlt
, count(*) FILTER(WHERE prime > 10) countgt
FROM
unnest('{2,3,5,7,11,13,17,19}'::integer[]) prime;