Страницы: 1
RSS
Power query выдает ошибку при динамическом названий столбца, Power query выдает ошибку при динамическом названий столбца
 
Добрый день, подскажите пож-та как быть если в файле "склад" в ячейке F3 всегда динамически меняется дата (прописана формула: ="Остаток"&ТЕКСТ(СЕГОДНЯ();"ДД.ММ.ГГГГ.")) и из этого файла через PQ вытягивается информация в файл "свод", но при изменений даты и соответственно значений в столбце, PQ не находит этот столбец (т.к. он ищет 09.10.2019, а завтра допустим будет уже стоять 10.10.2019) Спасибо.Свод.xlsx (19.56 КБ) Свод.xlsx (19.56 КБ)  
Изменено: Ov198 - 09.10.2019 14:40:48
 
Значит вы "жестко" привязали поиск/фильтр. В любом случае по вашему примеру этого не понятно. Где запрос PQ?  
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Ov198, как костыльный вариант - убрать название этого столбца в шаге "Изменённый тип1". Сейчас у вас там жесткая привязка названия столбца идёт. Соответственно и формат его в итоге будет "Общий"(any)
Изменено: Dark1589 - 09.10.2019 15:50:28
 
Доброе время суток
Цитата
Dark1589 написал:
убрать название этого столбца в шаге "Изменённый тип1".
Dark1589, и ТС прибежит с новым вопросом - почему пропадает расчётный столбец по остатку в сводной?  :D
Изменено: Андрей VG - 09.10.2019 15:55:40
 
Андрей VG, точно, это я не предусмотрел) видимо всё же нужно под другим углом на эту задачу смотреть
 
Александр, спасибо за участие. Запрос в файле "свод". Подскажите пожалуйста как менее жесткую привязку сделать.
 
Андрей VG, добрый вечер. Не подскажите как быть? Спасибо.
 
Dark1589, спасибо за участие. Вот учусь)
 
Вообще как вариант для конкретно приложенного запроса, если надо делать именно на основании текущей даты:
Код
#"Измененный тип1" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"№", Int64.Type}, {"Наименование", type text}, {"Переходящий остаток 01.10.2019", Int64.Type}, {"Приход", Int64.Type}, {"Расход", Int64.Type}, {"Остаток "&DateTime.ToText(DateTime.LocalNow(), "dd.MM.yyyy")&".", Int64.Type}})
собственно этот же принцип можно использовать и далее в запросе. Или можно использовать переменную для этого столбца:
Код
let
    Источник = Excel.Workbook(File.Contents("C:\Users\d.saurbayev\Desktop\склад.xlsx"), null, true),
    Свод_Sheet = Источник{[Item="Свод",Kind="Sheet"]}[Data],
    #"Измененный тип" = Table.TransformColumnTypes(Свод_Sheet,{{"Column1", type any}, {"Column2", type text}, {"Column3", type any}, {"Column4", type any}, {"Column5", type any}, {"Column6", type any}}),
    #"Удаленные верхние строки" = Table.Skip(#"Измененный тип",2),
    #"Повышенные заголовки" = Table.PromoteHeaders(#"Удаленные верхние строки", [PromoteAllScalars=true]),
    colname = DateTime.ToText(DateTime.LocalNow(), "dd.MM.yyyy"),
    #"Измененный тип1" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"№", Int64.Type}, {"Наименование", type text}, {"Переходящий остаток 01.10.2019", Int64.Type}, {"Приход", Int64.Type}, {"Расход", Int64.Type}, {"Остаток "&colname&".", Int64.Type}})
in
    #"Измененный тип1"
так же можно динамически получать все имена столбцов из файла. Но для этого надо понимать какая задача в итоге решается.
Изменено: Дмитрий(The_Prist) Щербаков - 09.10.2019 18:26:50 (изменил пользователя в источнике на оригинал :))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, огромное спасибо за помощь. Копировал конец кода и поставил вместо исходного. Если дата 09.10.2019, работает. А если изменить дату на 10.10.2019 вот что пишет. Как сделать чтобы он вместо 09 искал 10. Подскажите пожалуйста.
 
Дмитрий(The_Prist) Щербаков, спасибо большое. Только подскажите куда вставлять код. Спасибо еще раз огромное.
 
Цитата
Ov198 написал:
А если изменить дату на 10.10.2019 вот что пишет.
а где изменили-то? Системную дату изменили и дату в файле? У меня работает с текущей датой.
Цитата
Ov198 написал:
куда вставлять код
Идете в изменение запроса -вкладка Главная -Расширенный редактор. Туда и вставляете.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, в файле "склад" в ячейке F3. Все работает при текущей дате а если она меняется в этой ячейке выдает что столбец не найден((((
Изменено: Ov198 - 09.10.2019 18:43:12
 
Цитата
Ov198 написал:
в файле "склад"
Ну это Вы молодец, конечно. Но сегодня-то не 10 вроде. Вы же написали изначально:
Цитата
Ov198 написал:
в ячейке F3 всегда динамически меняется дата (прописана формула: ="Остаток"&ТЕКСТ(СЕГОДНЯ();"ДД.ММ.ГГГГ."))
а завтра допустим будет уже стоять 10.10.2019
вот завтра, если не менять формулу - 10-е и подтянется. А сегодня только 9-е, т.к. DateTime.LocalNow() возвращает текущую дату.
Опишите тогда нормально задачу, что ли, не опираясь на текущую дату что надо сделать со столбцами, помимо того, что просто получить? Всегда 6-ой столбец это остаток? Или это может быть любой столбец?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, я очень извиняюсь. Надо так при изменений Даты в столбце F в файле "склад" когда наступит завтра то есть 10.10.2019. запрос работал корректно. Я просто пробовал в ручную менять чтобы проверить будет ли работать.Не работает(((( Спасибо. Извините еще раз. То есть чтобы не в зависимости от даты он брал эти столбцы.
Изменено: Ov198 - 09.10.2019 18:52:51
 
Цитата
Ov198 написал:
когда наступит завтра
ну вот когда наступит завтра - мой запрос сработает. Но ЗАВТРА, когда системная дата будет равна дате в файле и соответственно в запросе.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, спасибо большое. Буду ждать завтра = )
 
Если столбец с остатком всегда 6-ой по счету - то можно еще так сделать:
Код
let
    Источник = Excel.Workbook(File.Contents("C:\Users\d.saurbayev\Desktop\склад.xlsx"), null, true),
    Свод_Sheet = Источник{[Item="Свод",Kind="Sheet"]}[Data],
    #"Измененный тип" = Table.TransformColumnTypes(Свод_Sheet,{{"Column1", type any}, {"Column2", type text}, {"Column3", type any}, {"Column4", type any}, {"Column5", type any}, {"Column6", type any}}),
    #"Удаленные верхние строки" = Table.Skip(#"Измененный тип",2),
    #"Повышенные заголовки" = Table.PromoteHeaders(#"Удаленные верхние строки", [PromoteAllScalars=true]),
    ColNames = Table.ColumnNames(#"Повышенные заголовки"),
    colN = ColNames{5},
    #"Измененный тип1" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"№", Int64.Type}, {"Наименование", type text}, {"Переходящий остаток 01.10.2019", Int64.Type}, {"Приход", Int64.Type}, {"Расход", Int64.Type}, {colN, Int64.Type}})
in
    #"Измененный тип1"
Тогда на дату уже ничего не завязано, но завязано на порядковый номер столбца.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Спасибо. Буду пробовать
Страницы: 1
Наверх