Страницы: 1
RSS
Запрос Power Query по значению ячейки Excel
 
Добрый день. Прошу вашей помощи в решении одной задачки.
Есть ячейка на листе с датой, дата меняется каждый день. (=рабдень(тдата();-1)).
Посредством Power Query хочу настроить выгрузку данных исходя из значения в данной ячейке.
Ранее, когда дата или период был конкретными, просто в расширенном редакторе прописывал: select * from table t where t.arcdate between to date(необходимые даты), а вот как быть когда дата меняется, я не знаю. Подозреваю, что может быть при помощи функции какой-то. Либо как-то можно решить с помощью макросов. В общем за любую помощь буду благодарен.
Заранее спасибо
 
1. В своих созданных темах лучше отписываться.
2. Не видя полностью хотя бы причинный кусок запроса советовать что-то конкретное очень сложно. Например, может подойдет подход отсюда: Относительный путь к данным PowerQuery
а может надо как-то иначе...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Станислав Бодров, так у Вас же SQL запрос текстом. Так и добавьте туда значения дат из запроса PQ:
Код
SQL.Database ( "aaaa", "ffff", [Query = " SELECT * from table t WHERE t.arcdate BETWEEN " & даты[дата с] & " AND " & даты[дата по] ] )
Изменено: surkenny - 22.11.2021 14:39:16
 
Мне нужен не набор дат, а конкретная дата, которая меняется ежедневно при открытии файла (формула =ТДАТА()) на Лист1, на Лист2 хочу настроить автоматическую выгрузку

Сам запрос выглядит подобным образом
let
    Источник = Oracle.Database("aaaaaa",  [HierarchicalNavigation=true, Query="select b.data1,sum(-b.data2) from base b#(lf)where b.arcdate = to_date('19.11.2021','dd.mm.yyyy')#(lf)and b.BACCID in (gggg,gggg,gggggg,gggg,ggg)#(lf)and b.data1 in ('aa')#(lf)group by b.data1#(lf)"])
in
    Источник
Тут указана конкретная дата (19.11.2021), а мне нужно, что бы запрос обращался к ячейке на Лист1 и брал дату оттуда
 
Станислав Бодров, а что я непонятно объяснил? Есть у Вас таблица с датой, которая считается по формуле =РАБДЕНЬ(ТДАТА();-1). Назовите ее to_date, столбце назовите "Дата". В первом шаге PQ берет дату, во втором подставляем ее в SQL запрос:
Код
let
  to_date = DateTime.ToText ( Excel.CurrentWorkbook(){[ Name = "to_date" ]}[Content][Дата]{0}, "dd.MM.yyyy" ), 
  src = Oracle.Database (
    "aaaaaa", 
    [
      HierarchicalNavigation = true, 
      Query = "select b.data1,sum(-b.data2) from base b#(lf)where b.arcdate = to_date('"
        & to_date
        & "','dd.mm.yyyy')#(lf)and b.BACCID in (gggg,gggg,gggggg,gggg,ggg)#(lf)and b.data1 in ('aa')#(lf)group by b.data1#(lf)"
    ]
  )
in
  src
 
Цитата
написал:
Мне нужен не набор дат
Цитата
написал:
мне нужно, что бы запрос обращался к ячейке на Лист1 и брал дату оттуда
Вы по ссылке-то пробовали сходить и посмотреть хотя бы? Ну нельзя так лениво относиться к решению своей же задачи...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
,Спасибо огромнейшее! Как раз то, что нужно
Страницы: 1
Наверх