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

Страницы: 1
Управление Power Pivot с помощью VBA
 
Кто знает - можно ли VBA кодом (и как) :
1) Обновить таблицу в модели данных, если она  загружена НЕ запросом power query, а кнопкой добавить в модель данных?
2) Создать связь между таблицами в модели?
3) Создать DAX - меру или добавлять вычисляемые столбцы в таблицах в power pivot?
4) Создавать и менять сводные таблицы из модели данных?  
Да здравствует Государь-Император Франц Иосиф Первый!
DAX объединить таблицы с разным числом столбцов
 
Подскажите есть ли в DAX функция для присоединения таблиц с разным числом столбцов, чтобы работала точно так же как append в power query? То есть столбцы с одинаковыми названиями становятся один под другой, а если столбец есть только в одной из таблиц то строки в нем из других таблиц пустые. Есть Union, но он требует одинаковое число столбцов!! А как быть с разными?  
Изменено: Йозеф Швейк - 13.03.2022 23:54:50
Да здравствует Государь-Император Франц Иосиф Первый!
Получить данные в excel из Power BI, Запрос к модели данных
 
Добрый день!
Сорри если когда-то уже задавался такой вопрос, но я не нашёл его в поиске по форуму)
Подскажите пож-та: как получить данные в excel power-qwery запросом из файла power-BI (расширение pbix) ?
Я не смог найти на панели функции обращения к power-BI! Версия excel у меня 2019 Pro.
А также - можно ли обратиться запросом к таблице из модели данных другого excel файла, если таблица не загружена на лист?
Большое спасибо кто подскажет!
Изменено: Йозеф Швейк - 12.03.2022 12:05:37
Да здравствует Государь-Император Франц Иосиф Первый!
Гистограмма с заданным число столбцов, Как задать число столбцов (групп) в гистограмме?
 
Игорь, большое спасибо!
Да всё-таки приходится группировать вначале вручную, я так и думал  :( .
Да здравствует Государь-Император Франц Иосиф Первый!
Гистограмма с заданным число столбцов, Как задать число столбцов (групп) в гистограмме?
 
Пример - любой столбец из ста чисел со значениями СЛУЧМЕЖДУ(1000; 5000).
Можно ли при построении гистограммы задать сразу группировку например в 10 групп, или необходимо вначале вручную группировать по СУММЕСЛИМН, и только по сгруппированной таблице строить гистограмму? Первый вариант был бы намного лучше  :)  
Изменено: Йозеф Швейк - 17.11.2021 00:06:02
Да здравствует Государь-Император Франц Иосиф Первый!
Гистограмма с заданным число столбцов, Как задать число столбцов (групп) в гистограмме?
 
Подскажите плиз - как правильно задать число столбцов (количество групп) в гистограмме ексель? Я перепробовал все виды гистограмм и нигде не нашёл такого параметра! Он делает столько столбиков, сколько сам захочет. Обычно слишком много.
Источник данных для гистограммы - просто столбец чисел.
Заранее благодарю)
Изменено: Йозеф Швейк - 16.11.2021 21:59:09
Да здравствует Государь-Император Франц Иосиф Первый!
Запрос Power Query грузит из файла в 2-3 раза больше мегабайт, чем весит сам файл-источник
 
Цитата
написал:
это следствие использования функции Table.Pivot совместно с List.Distinct
Спасибо - сразу видно профессионала!  :)
Я попробовал переделать код так:
Код
let    
    Источник = Excel.Workbook(File.Contents("C:\Рабочий стол\Источник данных.xlsx"), null, true),    Источник_Sheet = Источник{[Item="Источник",Kind="Sheet"]}[Data],
    #"Повышенные заголовки" = Table.PromoteHeaders(Источник_Sheet, [PromoteAllScalars=true]),
    #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Договоры", type text}, {"Тип договора", type text}, {"Столбец 2", type text}, {"Показатель", type number}}),
    TheList = List.Buffer(#"Измененный тип"[#"Тип договора"]),
    TheTable = Table.Buffer(#"Измененный тип"),
    #"Сведенный столбец" = Table.Pivot(TheTable, List.Distinct(TheList), "Тип договора", "Показатель", List.Sum),
    #"Замененное значение" = Table.ReplaceValue(#"Сведенный столбец",null,0,Replacer.ReplaceValue,{"Долгосрочный", "Среднесрочный", "Краткосрочный"}),
    #"Сгруппированные строки" = Table.Group(#"Замененное значение", {"Договоры", "Столбец 2"}, {{"Долгосрочные", each List.Sum([Долгосрочный]), type nullable number}, {"Среднесрочные", each List.Sum([Среднесрочный]), type nullable number}, {"Краткосрочные", each List.Sum([Краткосрочный]), type nullable number}})
in
    #"Сгруппированные строки"
Но почему-то не помогло - запрос так же грузит в несколько раз больше размера исходного файла, и время загрузки не изменилось! Подскажите плиз: что я делаю не так? Как надо?) Может надо предварительно как-то специально чистить кэш?)
Изменено: Йозеф Швейк - 16.11.2021 00:54:04
Да здравствует Государь-Император Франц Иосиф Первый!
Запрос Power Query грузит из файла в 2-3 раза больше мегабайт, чем весит сам файл-источник
 
Да не используйте кнопку цитирования, когда цитата - как собаке пятая лапа! [МОДЕРАТОР]

Да это вариант! Хотя есть минус - придётся делать эту копию каждый раз при разработке нового запроса.
Протестировал также сохранение источника в формате csv - ускорение несущественное.
Нашёл, что обсуждалась ранее какая-то функция Table.Buffer, но я так и не понял: как её применять, и ускоряет ли она в итоге выполнение запроса, или наоборот тормозит ?) Кто в курсе про Table.Buffer ?)
Изменено: vikttur - 14.11.2021 13:53:39
Да здравствует Государь-Император Франц Иосиф Первый!
Запрос Power Query грузит из файла в 2-3 раза больше мегабайт, чем весит сам файл-источник
 
Цитата
для чего вам Table.Group, если вы уже все сделали в Table.Pivot ?
Цитата
И null на 0 меняется для эстетического оргазма при предпросмотре?
Группировка потом делается по другому набор столбцов, нежели Pivot. В примере приведены не все столбцы, но сути это не меняет.
Null на 0 меняю, чтобы делать потом  в запросе математические операции с этими столбцами.
Есть ли способы ускорить быстродействие запроса, кроме как удалять из него шаги ?)
Да здравствует Государь-Император Франц Иосиф Первый!
Запрос Power Query грузит из файла в 2-3 раза больше мегабайт, чем весит сам файл-источник
 
Сделал небольшой пример. Во вложении таблица исходных данных сокращённая ("Источник данных.xlsx"). Предположим, что в ней не пара тысяч строк, а около миллиона, и весит > 100Мб)
Из другого файла я к ней применяю следующий запрос:
Код
let
    Источник = Excel.Workbook(File.Contents("C:\Рабочий стол\Источник данных.xlsx"), null, true),
    Источник_Sheet = Источник{[Item="Источник",Kind="Sheet"]}[Data],
    #"Повышенные заголовки" = Table.PromoteHeaders(Источник_Sheet, [PromoteAllScalars=true]),
    #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Договоры", type text}, {"Тип договора", type text}, {"Столбец 2", type text}, {"Показатель", type number}}),
    #"Сведенный столбец" = Table.Pivot(#"Измененный тип", List.Distinct(#"Измененный тип"[#"Тип договора"]), "Тип договора", "Показатель", List.Sum),
    #"Замененное значение" = Table.ReplaceValue(#"Сведенный столбец",null,0,Replacer.ReplaceValue,{"Долгосрочный", "Среднесрочный", "Краткосрочный"}),
    #"Сгруппированные строки" = Table.Group(#"Замененное значение", {"Договоры", "Столбец 2"}, {{"Долгосрочные", each List.Sum([Долгосрочный]), type nullable number}, {"Среднесрочные", each List.Sum([Среднесрочный]), type nullable number}, {"Краткосрочные", each List.Sum([Краткосрочный]), type nullable number}})
in
    #"Сгруппированные строки"

После ввода шагов "Столбец Сведения" и "Группировка" почему-то начинает заново грузиться файл-источник, как будто он не запоминается в буфере обмена. И далее, при внесении новых шагов, тоже почему-то исходный файл каждый раз грузится с нуля и предварительный просмотр обновляется очень-очень долго.
Как можно изменить код так, чтобы исходный файл загрузился только один раз(при открытии запроса), и далее редактирование запроса работало моментально?)

Также может быть: тут дело не в коде запроса, а нужно что-то поменять в параметрах? Подскажите плиз кто разбирается
Да здравствует Государь-Император Франц Иосиф Первый!
Запрос Power Query грузит из файла в 2-3 раза больше мегабайт, чем весит сам файл-источник
 
А что касается другого пункта моего вопроса:
Цитата
написал:
Причём, загрузка требуется каждый раз заново как бы "с нуля" при добавлении некоторых шагов в запросе
Можно ли как-то сделать так, чтобы при обновлении предварительного просмотра после добавления шагов файл не прогружался заново с нуля? )
Да здравствует Государь-Император Франц Иосиф Первый!
Запрос Power Query грузит из файла в 2-3 раза больше мегабайт, чем весит сам файл-источник
 
Да точно - похоже что вы правы!! Файл .xlsx можно распаковать с помощью 7-Zip, и в результате получается папка, весящая в несколько раз больше!
Вы просто открыли для меня другой мир   :)  
Да здравствует Государь-Император Франц Иосиф Первый!
Запрос Power Query грузит из файла в 2-3 раза больше мегабайт, чем весит сам файл-источник
 
То есть сам файл .xlsx сам по себе является архивом? А, кажется понял. Т.е. то, что при загрузке объём больше, чем размер файла, это нормально, так и должно быть ?)
Да здравствует Государь-Император Франц Иосиф Первый!
Запрос Power Query грузит из файла в 2-3 раза больше мегабайт, чем весит сам файл-источник
 
Цитата
написал:
Ну файл ведь наверное архив?
Файл .xlsx. Сорри, забыл указать в вопросе.
Да здравствует Государь-Император Франц Иосиф Первый!
Запрос Power Query грузит из файла в 2-3 раза больше мегабайт, чем весит сам файл-источник
 
Добрый день!
Кто может подсказать: почему запрос Power Query к книге excel (расширение .xlsx) может грузить из файла объём больший, чем вести сам файл-источник? Например, гружу из файла размером 100 Мб, а запрос загружает из него аж 300 мегабайт! Причём, загрузка требуется каждый раз заново как бы "с нуля" при добавлении некоторых шагов в запросе, таких как, например, группировка или сведённый столбец. При этом фоновое обновление в параметрах отключено.
И можно ли как-то уменьшить объём загрузки, чтобы, соответственно, ускорить выполнение запроса?
Заранее благодарен тем кто ответит!  :)

Для примера: приложен файл ексель, код запроса к нему такой:
Код
let
    Источник = Excel.Workbook(File.Contents("C:\Рабочий стол\Источник данных.xlsx"), null, true),
    Источник_Sheet = Источник{[Item="Источник",Kind="Sheet"]}[Data],
    #"Повышенные заголовки" = Table.PromoteHeaders(Источник_Sheet, [PromoteAllScalars=true]),
    #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Договоры", type text}, {"Тип договора", type text}, {"Столбец 2", type text}, {"Показатель", type number}}),
    #"Сведенный столбец" = Table.Pivot(#"Измененный тип", List.Distinct(#"Измененный тип"[#"Тип договора"]), "Тип договора", "Показатель", List.Sum),
    #"Замененное значение" = Table.ReplaceValue(#"Сведенный столбец",null,0,Replacer.ReplaceValue,{"Долгосрочный", "Среднесрочный", "Краткосрочный"}),
    #"Сгруппированные строки" = Table.Group(#"Замененное значение", {"Договоры", "Столбец 2"}, {{"Долгосрочные", each List.Sum([Долгосрочный]), type nullable number}, {"Среднесрочные", each List.Sum([Среднесрочный]), type nullable number}, {"Краткосрочные", each List.Sum([Краткосрочный]), type nullable number}})
in
    #"Сгруппированные строки"
Изменено: Йозеф Швейк - 13.11.2021 16:57:03
Да здравствует Государь-Император Франц Иосиф Первый!
Как преобразовать текст в число?, Как преобразовать текст в число?
 
Чтобы преобразовать текст в число, надо:
1) Поменять формат ячейки с текстового на числовой;
2) Выделить другую пустую ячейку и скопировать;
3) Выделить ячейку с числом в текстовом формате, нажать Ctrl+Alt+V, поставить переключатель "Сложить" в блоке "Операция" и вставить "Значения".
После этого число станет числом  :D  
Да здравствует Государь-Император Франц Иосиф Первый!
Power Pivot: Как использовать одновременно две связи в одной мере?
 
Цитата
написал: вы хотите тащить из одного календаря в столбцы дату окончания, в строки дату начала, а пересечение разных четвертей даст пустой набор дат.
Да именно так! Получается, тогда эта задача нерешаема. Придётся создавать в таблице с фактом отдельный столбец "Квартал окончания", и уже его брать в свод.
Да здравствует Государь-Император Франц Иосиф Первый!
Power Pivot: Как использовать одновременно две связи в одной мере?
 
Цитата
написал:
Йозеф Швейк , а модель за Вас составлять?
Зачем модель? Можно просто написать формулу  :D  
Да здравствует Государь-Император Франц Иосиф Первый!
Шаблон коммерческого предложения
 
Можно сделать это на основе функции "Слияние" в ворде (вкладка "Рассылки - мастер пошагового слияния - начать слияние..."). Тогда формируются типовые вордовские документы с переменными фрагментами, меняющимися в зависимости от выбранной строки связанной ексель-таблицы  :D  
Да здравствует Государь-Император Франц Иосиф Первый!
Найти разницу между листом 1 и листом 2 и вывести её на лист 3
 
Это можно, с помощью надстройки "Inquire"  :D  .
Скопируйте листы в разные книги, и запустите сравнение этих книг  ;) .
Да здравствует Государь-Император Франц Иосиф Первый!
процент от числа с условиями и условным форматированием
 
Слишком вы заморочились этими цветастыми треугольниками и квадратами  :)
Обозначьте как-нибудь попроще, из того что есть в списке условных форматирований  ;) . Например, красные и зеленые кружочки  :excl:  :idea:  
Да здравствует Государь-Император Франц Иосиф Первый!
Power Pivot: Как использовать одновременно две связи в одной мере?
 
Добрый вечер! Вопрос такой:
Есть таблица "Договоры", связанная с календарём ("Calendar") по двум датам "Дата начала" (активная)  и "Дата окончания". В календаре есть два столбца "Квартал начала" и "Квартал окончания" с одинаковыми значениями вида "2021Q3".
Задача: Нужно построить сводную таблицу, в которой будут по строкам - "Квартал начала", а по столбцам "Квартал окончания" из таблицы 'Calendar', а в поле значений - сумма по полю [Сумма, руб.] из таблицы 'Договоры'.
Легко написать меры, использующие одну связь: по умолчанию берётся активная связь (по дате начала), для связи по дате окончания - CALCULATE(SUM('Договоры'[Сумма, руб.]);USERELATIONSHIP('Calendar'[Date];'Договоры'[Дата окончания])).
А как написать меру, которая бы использовала обе связи одновременно, и в каждой ячейке указанной в задаче сводной таблицы выдавала бы сумму по договорам, которые начаты в квартале, указанном в строке, и окончены в квартале, указанном в столбце? И сделать это, не создавая новых календарей и не добавляя столбцов в таблицу договоры)
Заранее спасибо!
Да здравствует Государь-Император Франц Иосиф Первый!
Страницы: 1
Наверх