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

Страницы: 1 2 След.
Запрос в PQ обрабатывает таблицу из Инета, но теряет ссылку, связанную с одной из ячеек таблицы. Есть ли способ извлечь эту ссылку?
 
Добрый день. При запросе из Excel по адресу https://www.livefpl.net/elite легко получить таблицу. Но... в одном из столбцов таблицы на сайте livefpl помимо данных есть ссылка на сторонний сайт. В коде страницы эта ссылка явно видна (см. рисунок). Как подучить ссылки по всем строкам. Лучше - вместе с данными таблицы, но можно и отдельно от данных.
Изменено: s_bag - 10.08.2023 13:59:38
Объединение больших таблиц в Power Pivot
 
Спасибо!
Я правильно понял?
У меня есть 9 запросов. Я объединил их в новом запросе.
При добавлении 10-го запроса нельзя дать команду, чтобы предыдущие девять не обновлялись?
PQ всё равно будет качать их из источника, будь то Инет или набор файлов CSV?
Объединение больших таблиц в Power Pivot
 
Цитата
написал:
Куда их скачали и где они "хранятся"? В виде "запроса" в PQ?
Да. Запрос PQ был загружен в модель данных.
А не поможет разорвать связь?
Объединение больших таблиц в Power Pivot
 
Есть набор таблиц загруженных в модель данных Power Pivot с помощью запросов Power Query из Интернета. Каждая таблица около 300К строк. Структура всех таблиц одинаковая. Новые данные появляются раз в неделю. Для анализа желательно оперировать данными, как единым набором. Ранее скачанные данные не изменяются, их можно не обновлять. Попытка объединить запросы в Power Query командой "Добавить запросы в новый" начинает скачивать информацию из Интернета по всем первичным запросам, хотя я и не прошу обновить запросы. Внутри Power Pivot функции объединения таблиц нет. (Есть в Power BI, но ради этого пока не хочется осваивать новую программу)
Пожалуйста, подскажите, можно ли реализовать в Power Query + Power Pivot возможность объединить таблицы/запросы без повторного скачивания из Инета?
Изменено: s_bag - 12.02.2023 15:42:14
Синтаксис языка М
 
Добрый день. Изучаю основы М. Возник вопрос, почему выражение...
Код
let 
   hello = if true 
      then 10 
      else 5 
in     
   hello
... возвращает значение 10, а...
Код
= hello = if true then 10 else 5
... возвращает ошибку Expression.SyntaxError: Ожидался токен Literal
Power Query функция List.Generate, Код выдает ошибку Expression.Error: Неизвестный идентификатор. Использовалось ли условное обозначение [field] для _[field] вне выражения "each"?
 
surkenny, Спасибо! Работает!
Изменено: s_bag - 08.04.2022 14:38:49
Power Query функция List.Generate, Код выдает ошибку Expression.Error: Неизвестный идентификатор. Использовалось ли условное обозначение [field] для _[field] вне выражения "each"?
 
Цитата
написал:
s_bag , если правильно успел заметить, то у Вас фиксированное количество первых столбцов с измерениями и далее переменное число столбцов с данными.
Правильно))
Цитата
написал:
Вариант с ходу - делайте unpivot, меняйте столбец «атрибута» (читай, наименования столбца данных до unpivot) по нужному Вам алгоритму и делайте pivot. Или вообще не делайте pivot, а далее «нормально» анализируйте данные плоской таблицы
Я приблизительно так и делал)) Но потом мне надоело мастерить запросы к каждому туру с нуля (а также я в качестве тренировки старался делать запросы всё более интеллектуальными). И я придумал, как сделать запрос, который можно обновить, даже, когда заголовки исходного файла *csv стали другими (показал в предыдущем ответе). А теперь новая беда - с каждым туром будет уменьшаться число столбцов с данными (первые столбцы остаются без изменения). Т.е., мне нужно научиться подсовывать функции Table.RenameColumns списки замен с различным количеством элементов.
Буду благодарен за помощь))
Power Query функция List.Generate, Код выдает ошибку Expression.Error: Неизвестный идентификатор. Использовалось ли условное обозначение [field] для _[field] вне выражения "each"?
 
Цитата
написал:
Покажите в примере вручную что нужно получить на выходе?
Я привел не всю обработку, а только ее часть. Цель этого фрагмента запроса - переименовать столбцы ориентируясь на их номера, а не названия. Так как названия меняются от тура к туру. И пока туров оставалось много, таблица всегда содержала данные о следующих 8 турах. Я использовал такой код:
Код
let
    fullfilepath = fnGetParameter("File Path fplreview"),
    tour1 = fnGetParameter("tour"),
    Источник = Csv.Document(File.Contents(fullfilepath),[Delimiter=",", Columns=22, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    #"Повышенные заголовки" = Table.PromoteHeaders(Источник, [PromoteAllScalars=true]),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Повышенные заголовки",{"SV", "ID"}),
    #"Переименованные столбцы" = Table.RenameColumns(#"Удаленные столбцы",
        {
        {"BV", "Cost"},
        {Table.ColumnNames(#"Удаленные столбцы"){4},"Min"&Text.From(tour1)}, 
        {Table.ColumnNames(#"Удаленные столбцы"){5},"Pts"&Text.From(tour1)},
        {Table.ColumnNames(#"Удаленные столбцы"){6},"Min"&Text.From(tour1+1)}, 
        {Table.ColumnNames(#"Удаленные столбцы"){7},"Pts"&Text.From(tour1+1)},
        {Table.ColumnNames(#"Удаленные столбцы"){8},"Min"&Text.From(tour1+2)},
        {Table.ColumnNames(#"Удаленные столбцы"){9},"Pts"&Text.From(tour1+2)},
        {Table.ColumnNames(#"Удаленные столбцы"){10},"Min"&Text.From(tour1+3)},
        {Table.ColumnNames(#"Удаленные столбцы"){11},"Pts"&Text.From(tour1+3)},
        {Table.ColumnNames(#"Удаленные столбцы"){12},"Min"&Text.From(tour1+4)},
        {Table.ColumnNames(#"Удаленные столбцы"){13},"Pts"&Text.From(tour1+4)},
        {Table.ColumnNames(#"Удаленные столбцы"){14},"Min"&Text.From(tour1+5)},
        {Table.ColumnNames(#"Удаленные столбцы"){15},"Pts"&Text.From(tour1+5)},
        {Table.ColumnNames(#"Удаленные столбцы"){16},"Min"&Text.From(tour1+6)},
        {Table.ColumnNames(#"Удаленные столбцы"){17},"Pts"&Text.From(tour1+6)},
        {Table.ColumnNames(#"Удаленные столбцы"){18},"Min"&Text.From(tour1+7)},
        {Table.ColumnNames(#"Удаленные столбцы"){19},"Pts"&Text.From(tour1+7)}
        }
    )
in
    #"Переименованные столбцы"
Теперь же туров осталось менее 8, и таблица содержит не 16 фиксированных столбцов с данными которые нужно переименовать по позиции, а меньше. Задача - переименовать ровно то число столбцов, которое есть в таблице.
Приложил файл с тем, что есть и что надо получить.
Изменено: s_bag - 07.04.2022 22:12:17
Апроксимация полиномом функции двух переменных, z=F(x,y)
 
Прикрепил.
Апроксимация полиномом функции двух переменных, z=F(x,y)
 
Я недавно решал подобную задачу несколькими способами. Может пойдет вам.
https://baguzin.ru/wp/?p=24879 См. главу 13.
Power Query функция List.Generate, Код выдает ошибку Expression.Error: Неизвестный идентификатор. Использовалось ли условное обозначение [field] для _[field] вне выражения "each"?
 
Добрый день.
С помощью PQ импортирую файл *csv. Это прогноз выступления игроков в Fantasy Premier League. В запросе переименовываю столбцы. Прогноз выдается на 8 туров. И всё хорошо, пока до конца чемпионата 8 или более туров. Если туров остается меньше, то и столбцов меньше. Пробую с помощью двух функций List.Generate создать списки внутри Table.RemoveColumns в зависимости от числа оставшихся туров. Получаю ошибку
Expression.Error: Неизвестный идентификатор. Использовалось ли условное обозначение [field] для _[field] вне выражения "each"?
Предполагаю, что как-то неверно обращаюсь с Index: PQ ожидает одно значение, а получает весь столбец [Index]. Или ошибка в коде где-то еще.
Может быть, в принципе предложите иной подход.
Спасибо.
Код
let
    fullfilepath = fnGetParameter("File Path fplreview"),
    tour1 = fnGetParameter("tour"),
    tour_max = if tour1 <= 31 then 7 else 38 - tour1,
    Источник = Csv.Document(File.Contents(fullfilepath),[Delimiter=",", Columns=22, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    #"Повышенные заголовки" = Table.PromoteHeaders(Источник, [PromoteAllScalars=true]),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Повышенные заголовки",{"SV", "ID"}),
    #"Переименованные столбцы" = Table.RenameColumns(
        #"Удаленные столбцы",
        {   {"BV", "Cost"},
            List.Generate(
                ()=> [Index=0],
                each [Index] <= tour_max,
                each [Index = [Index]+1],
                each Table.ColumnNames(#"Удаленные столбцы"){4+[Index]*2},"Min"&Text.From(tour1+[Index])
            ),
            List.Generate(
                ()=> [Index=0],
                each [Index] <= tour_max,
                each [Index = [Index]+1],
                each Table.ColumnNames(#"Удаленные столбцы"){5+[Index]*2},"Pts"&Text.From(tour1+[Index])
            )
        }
    )
in    
    #"Переименованные столбцы"
Суммирование столбцов в Power Query по позициям столбцов
 
evgeniygeo, спасибо! Предложенное решение работает!
Суммирование столбцов в Power Query по позициям столбцов
 
Да, столбцов всегда три.
Суммирование столбцов в Power Query по позициям столбцов
 
Добрый день. Исходная таблица в будущем сохранит структуру, но названия столбцов изменятся. Пытаюсь просуммировать столбцы, обращаясь к ним не по имени, а по индексу в таблице. Интерфейс генерит код:
= Table.AddColumn(Источник, "FullPts", each [Pts28]+[Pts29]+[Pts30])
Столбцы Pts28, Pts29 и Pts30 имеют индексы 4, 5, 6.
Замена строки кода на...
= Table.AddColumn(Источник, "FullPts", each [Table.ColumnNames(Источник){4}]+[Table.ColumnNames(Источник){5}]+[Table.ColumnNames(Источник){6}])
... не работает.
Пожалуйста, подскажите, как можно решить задачу.
Регулярные выражения. Можно ли ссылаться на группу за пределами метода Replace?
 
Именно эту конструкцию я и не мог сам найти:
Код
> .Execute(cell)(0).SubMatches(1)

Спасибо!
Регулярные выражения. Можно ли ссылаться на группу за пределами метода Replace?
 
Дмитрий. Например, такая задача: найти в тексте градусы Цельсия/Фаренгейта по шаблону ([0-9]+)([CF]) и, если $2 = "F", то делаем одно, а если $2 = "С", то - другое.
Регулярные выражения. Можно ли ссылаться на группу за пределами метода Replace?
 
Добрый день. Помогите начинающему)) В книге Фридла "Регулярные выражения" нашел код на Perl с ссылками на группы. Пока у меня получилось сослаться на группу только в методе Replace. Можно ли использовать ссылки типа $1 за пределами метода Replace? Можно ли реализовать на VBA функцию, описанную Фридлом? Если можно, пожалуйста покажите, как это сделать.
Перевод на русский язык терминов, используемых в описании работы динамических массивов
 
Спасибо. Отличное объяснение. Еще больше прояснило мое понимание, но... вопрос всё же был в другом: как эти термины переведены на русский?
Я не встречал на просторах рунета, поэтому использовал для Broadcasting - транслировать, а для Lifting - подъем.
Перевод на русский язык терминов, используемых в описании работы динамических массивов
 
Broadcasting используется в таком контексте. Excel ищет произведение массива на скаляр. Excel транслирует/повышает/расширяет (broadcasting) размерность скаляра до размерности массива. Например, {1;2;3}*3 автоматически превращается в {1;2;3}*{3;3;3}.

Lifting. Когда формула ожидает одно значение, а поступает массив, происходит подъем/расширение (lifting) работы формулы, которая возвращает не одно значение, а массив. Например, =ДЛСТР(А1:В4) вернет массив из 8 результатов. Я понимаю, что lifting со скаляра на вектор.
Перевод на русский язык терминов, используемых в описании работы динамических массивов
 
Добрый день. Перевожу английские материалы, посвященные работе динамических массивов. Столкнулся с рядом терминов, которые до сих пор не встречал на русском языке. Поиск в Интернете не дал результатов.
Как бы вы перевели в контексте динамических массивов: Lifting, Pairwise, Broadcasting, Array Truncation?
Изменено: s_bag - 21.09.2020 13:31:00
Обработка ошибок в Power Query, В зависимости от последовательности шагов результат разный
 
Максим, спасибо за разъяснения.
Андрей, это высший пилотаж! Пошел изучать код.
Обработка ошибок в Power Query, В зависимости от последовательности шагов результат разный
 
Загружаю текстовый файл с помощью Power Query.
Если сначала удаляю строки, содержащие ошибки в столбце Tran Date, а потом снимаю в фильтре галочку с null, всё Ok.
Если сначала снимаю в фильтре галочку с null, то внизу показывает одну строку с Error, которую удалить нельзя.
И, похоже, часть строк пропадает.
Почему в этом месте важна последовательность действий?
Собственно, обрабатываемый файл:GL Jan-Mar.TXT (17.08 КБ)Спасибо.
Структурированный столбец в редакторе Power Query
 
Михаил, спасибо.
Структурированный столбец в редакторе Power Query
 
Не могу найти функционал опции "Структурированный столбец" на вкладке "Преобразование" в редакторе Power Query. Подскажите, пожалуйста.
Использование функции КУБЗНАЧЕНИЕ с указанием временных промежутков
 
Цитата
The_Prist написал:
Но насколько помню напрямую из двух ячеек диапазон дат не слепить - только записывая в каждой ячейке по дате из нужного периода.
Опробовал такой синтаксис в Excel2019
=КУБМНОЖ("ThisWorkbookDataModel";
"{[Calendar].[Date].[All].["&ТЕКСТ(A1;"М/Д/ГГГГ")&"]:[Calendar].[Date].[All].["&ТЕКСТ(A6;"М/Д/ГГГГ")&"]}";
"множ")
Работает))
Изменено: s_bag - 26.06.2019 22:53:47 (добавил несколько слов)
Как задать меру по умолчанию для модели данных Power Pivot?
 
Добрый день.
Андрей, спасибо.
Позвольте выразить свое восхищение. Зачитываюсь вашими ответами))
Но в этот раз я имел ввиду нечто иное - можно ли назначить в Power Pivot меру по умолчанию, т.е., такую меру, значение которой вернет формула без ясного указания на меру:
Код
=КУБЗНАЧЕНИЕ("ThisWorkbookDataModel")
Изменено: s_bag - 17.06.2019 13:44:17 (Забыл подписаться на ответы)
Как задать меру по умолчанию для модели данных Power Pivot?
 
В справке MS по функции КУБЗНАЧЕНИЕ читаем для аргумента Выражение_элемента:
Цитата
Если в аргументе "выражение_элемента" не указана мера, будет использоваться мера, заданная по умолчанию для этого куба.
У меня функция КУБЗНАЧЕНИЕ обращается не к кубу OLAP, а к модели данных Power Pivot.
Можно ли для этой модели данных задать меру по умолчанию?
Если можно, то как это сделать?
Спасибо.
Пользовательская функция ВПР2 возвращает 0 если не находит совпадения, а не ошибку
 
sokol92, спасибо.
1) Поправил тип для переменной i.
2) Из вашего сообщения понял, что функция вполне может возвращать ноль, а чтобы она возвращала ошибку Excel (но не ошибку кода VBA), нужно сообщить ей, какую ошибку вернуть. Получило так:
Код
Function ВПР2(SearchValue As Variant, Table As Range, ResultColumnNum As Integer)
Dim i As Long
ВПР2 = CVErr(xlErrNA)
For i = 1 To Table.Rows.Count
    If Table.Cells(i, 1) = SearchValue Then
        ВПР2 = Table.Cells(i, ResultColumnNum)
    End If
Next i
End Function

Изменено: s_bag - 14.06.2019 16:51:10 (неверно отражается код VBA)
Пользовательская функция ВПР2 возвращает 0 если не находит совпадения, а не ошибку
 
Подглядел и дописал функцию ВПР2, которая возвращает последнее найденное значение в диапазоне (а не первое, как обычная ВПР).
Пожалуйста, подскажите начинающему программисту на VBA, почему функция возвращает 0, а не ошибку, если совпадений не найдено.
Могу, конечно, в начало кода добавить строку
ВПР2 = "#Н/Д"
Но это как-то странно.

Код
Function ВПР2(SearchValue As Variant, Table As Range, ResultColumnNum As Integer)
Dim i As Integer
For i = 1 To Table.Rows.Count
    If Table.Cells(i, 1) = SearchValue Then
        ВПР2 = Table.Cells(i, ResultColumnNum)
    End If
Next i
End Function
Некорректно ведет себя срез для меры, созданной в модели данных
 
Добрый день. Читаю книгу Роб Колли. Формулы DAX для Power Pivot (на английском) и пробую повторить шаги. "Споткнулся" на некорректно работающем срезе на основе меры. При попытке выбрать новое значение на срезе выдает ошибку. Работаю в русском Excel 2019.
Изменено: s_bag - 07.01.2019 19:18:40
Страницы: 1 2 След.
Наверх