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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 394 След.
DAX вывести текстовые значения в матрице из таблицы фактов
 
Цитата
Роман Левит написал:
Нужно чтобы в одной ячейке было одно значение
Какое значение?
Цитата
Роман Левит написал:
Решение представленое в файле не совсем корректное
Какое должно быть корректным?
Роман Левит, полагаю вам стоит подождать специалиста вашей предметной области... Думаю он без лишних вопросов даст полный и доказательный ответ. Успехов.
DAX. Фильтр для исключения при суммировании дубликатов по условию.
 
Цитата
surkenny написал:
в  большинстве  случаев  запросы  легче  выразить  через  сочетание  функций  ADDCOLUMNS и  SUMMARIZE
Э, коллега. Тут суть несколько дальше. Не рекомендуется выполнять вычисления непосредственно в SUMMARIZE и GROUPBY. А вот если использовать для формирования строкового контеста, используемого в CALCULATE - и что сделано у меня (собственно, если почитать относительно свежие статьи итальянцев, то вы это увидите - я не его изобретатель :) ), то это не ведёт к деградации производительности.
Например, среднее средних.
Чем это
Код
=Var stats = ADDCOLUMNS(SUMMARIZE('Query1'; 'Query1'[DateKey]; 'Query1'[StoreKey]);
    "ds_avg"; CALCULATE(AVERAGE('Query1'[TotalCost]))
)
Return AVERAGEX(stats; [ds_avg])

будет быстрее, чем
Код
=AVERAGEX(SUMMARIZE('Query1'; 'Query1'[DateKey]; 'Query1'[StoreKey]);
    CALCULATE(AVERAGE('Query1'[TotalCost]))
)

Подход в использовании SUMMARIZE и GROUPBY ровно тот же. И производительность у них тут сопоставима. Собственно, об этом и написано следующее
Цитата
Цитата
surkenny написал:
Thus,  GROUPBY  should be used only to group the result of another calculation
Изменено: Андрей VG - 19.09.2021 20:15:58
DAX. Фильтр для исключения при суммировании дубликатов по условию.
 
Цитата
surkenny написал:
Вроде, SUMMARIZE более производительная функция
Коллега, а можно показать - на основании чего сделано такое заключение? Сопоставил GROUPBY и SUMMARIZE для получения строкового контекста
Код
EVALUATE
ADDCOLUMNS(SUMMARIZE('Query1', Query1[DateKey], Query1[StoreKey]), "foo", 1)

Исходник - типовая база ContosoRetailDW с таблицей dbo.FactOnlineSales c более чем 12,6 миллиона строк. Создаётся таблица на 3288 строк. Типовые результаты выполнения в DAX Studio - разница в пределах погрешности по нескольким стартам. :)
Я ожидал критику, но не в этой части. Займусь самокритикой
1. Формально не определено что набор полей: Регион; Компания; Отчетный период; Дата отчета; Дата  изменения; Продукция - это первичный ключ. Если нет, и существует несколько записей, отличающихся только значением поля Сумма, то в решении azma будет один результат, у меня другой результат - значение поля Сумма первой попавшейся записи, удовлетворяющей условию отбора. Естественно, можно перепилить и на сумму, получив максимальную дату тем же путём, а уж её использовать в фильтре CALCULATE
2. Если возвращается кодом
Код
var latestByReportDateAndProduct = CALCULATETABLE(TOPN(1; 'Таблица2'; 'Таблица2'[Дата  изменения]; DESC))

всегда одна строка, то тогда зачем ею фильтровать входные данные?!
То есть вместо
Код
Return CALCULATE(SUM('Таблица2'[Сумма]); latestByReportDateAndProduct)

использовать обработку уже полученной виртуальной таблицы (собственно извлечение данных поля записи)
Код
Return SUMX(latestByReportDateAndProduct; 'Таблица2'[Сумма])

:)
DAX. Фильтр для исключения при суммировании дубликатов по условию.
 
azma, снимаю шляпу и рукоплещу стоя! :)
И, да, упростить выражение можно, особенно учитывая требуемую структуру вывода.
Код
=SUMX(GROUPBY('Таблица2'; 'Таблица2'[Дата отчета]; 'Таблица2'[Продукция]);
    var latestByReportDateAndProduct = CALCULATETABLE(TOPN(1; 'Таблица2'; 'Таблица2'[Дата  изменения]; DESC))
    Return CALCULATE(SUM('Таблица2'[Сумма]); latestByReportDateAndProduct)
)
DAX. Фильтр для исключения при суммировании дубликатов по условию.
 
Цитата
ТипТоп написал:
Почему не использован?
Посмотрите то, что вы приложили. Объясните, тогда как вы это получили
Поддержка макросов на JavaScript в Excel
 
Цитата
Jack Famous написал:
глянул на работающий автономный файл
Привет, Алексей.
А по ссылке глянуть? Там речь идёт про AddIn :) Хотя конечно соглашусь, что xll настройки Виталия тоже можно считать автономным файлом.
Изменено: Андрей VG - 18.09.2021 22:19:08
DAX. Фильтр для исключения при суммировании дубликатов по условию.
 
Доброе время суток
Цитата
ТипТоп написал:
брала строку с максимальным значением в столбце «Дата изменения»
Тогда почему для Москва, ООО Ромашка, 2019 не использован в результате вывод 15.09.2020 - 6 800,00? Для Москва, ООО Груша, 2019 - 15.08.2020 950,00?
Почему раскраска в "Нужный результат" по названиям ООО не совпадает с раскраской в таблице источнике?
Поддержка макросов на JavaScript в Excel
 
Доброе время суток
Цитата
vikttur написал:
Не понимает
Виктор, правильно ли я понимаю, что тут Microsoft нагло врёт?!
ВПР или надстройки, Аналоги впр или схожие решения проблемы
 
Доброе время суток.
А чем такое решение ВПР ПО ДВУМ И БОЛЕЕ КРИТЕРИЯМ не устроило?
DAX вывести текстовые значения в матрице из таблицы фактов
 
Доброе время суток.
Предположение
DAX количество чеков за период с возможностью детализации
 
Цитата
mechanix 85 написал:
нет, не то.
Ну, чтобы понять, что должно быть то, нужно быть специалистом в вашей области. Я - нет. А без этого понять, что должно быть то по неправильно составленной мере... та ещё задача для не специалиста. :)
DAX - создать меру для вывода среднего только в промежуточные итоги группы
 
Доброе время суток.
Вариант
Код
=IF(ISFILTERED('Таблица1'[02 Название SKU short]); 
    BLANK();
    SUMX(GROUPBY('Таблица1'; 'Таблица1'[04 Дочерняя сеть]; 'Таблица1'[Группа]);
        CALCULATE(AVERAGE('Таблица1'[Оборот]))
    )
)
DAX количество чеков за период с возможностью детализации
 
Доброе время суток.
Вариант
Код
=Var checkCount = DISTINCTCOUNT('Продажи'[Чек_])
Var isInSelected = COUNTROWS(FILTER('ЧекиДК'; 'ЧекиДК'[Кво чеков по ДК] = checkCount)) > 0
Return IF(isInSelected; checkCount; BLANK())

P. S. Быстро не понял, что вы хотите посчитать по измерению "Кассир|ИНН", поэтому использовал количество уникальных "Чек_"
Рассчитать скользящее среднее по последним N неделям
 
Цитата
Алена написал:
ругается про циклическую ошибку
Где?
Цитата
Алена написал:
прогноз по неоткрытым
А как же это?
Цитата
2.6. Один вопрос - одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов.
Рассчитать скользящее среднее по последним N неделям
 
Доброе время суток.
Цитата
Алена написал:
а можно это как то на DAX написать?
Можно.
Код
=Var lastWeek = MAX('Таблица1'[Номер недели в году])
Return AVERAGEX(FILTER('Таблица1'; 'Таблица1'[Номер недели в году] > (lastWeek - 8)); 'Таблица1'[продажи шт])
В PQ запрос долго выполняется и потом появляется ошибка
 
Доброе время суток
Цитата
Ибрагим Белхороев написал:
А нули, что обозначают?
А почитать #duration?
Нарастающий итог в PP (DAX), Нарастающий итог в PP (DAX)
 
Доброе время суток.
Вроде же очевидно
Код
=IF(ISBLANK([Сумма факт]); BLANK(); CALCULATE([Сумма факт];FILTER(ALL('Calendar'[Date]);'Calendar'[Date]<=MAX('Calendar'[Date]))))
Подсчет среднего значения с условием в Power Pivot
 
Цитата
Артем написал:
написать функцию СРЗНАЧЕСЛИМН
То есть вы полагаете, что предложенная вам функция для вычисляемого столбца этому не удовлетворяет? Можно это как то более детально обосновать?
Подсчет среднего значения с условием в Power Pivot
 
Артем, ответ на название темы и постановку задачи в первом посте вами получен.
Цитата
Артем написал:
сравнить с прошлым периодом
на мой взгляд, уже выходит за описанные рамки. Можете создать ещё одну тему или подождать другого участника форума, который считает, что это не так.
P. S.
Цитата
Артем написал:
А как установить несколько фильтров: год/месяц? так же?
Пожалуйста, не стесняйтесь, помогите следующему отвечающему
Цитата
2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
Power Query.Скорость внутренних вычислений, Довольно медленно обновляется запрос. Можно ли как то улучшить положение?
 
Цитата
Пытливый написал:
взрыва мозга
А чего там такого? Ну, универсальная функция генерации списков. На VB.NET будет как-то так
Код
Public Delegate Function NonAgrument() As Object
Public Delegate Function SingleArgument(ByVal arg1 As Object) As Object

Module Module1
   'Аналог List.Generate
   Public Function Generate(
         ByVal Initial As NonAgrument,
         ByVal Condition As SingleArgument,
         ByVal NextItem As SingleArgument,
         ByVal Selector As SingleArgument) As ICollection

      Dim curItem As Object = Initial()
      Dim result As New Collection
      Do While DirectCast(Condition(curItem), Boolean)
         result.Add(Selector(curItem))
         curItem = NextItem(curItem)
      Loop
      Return result
   End Function

   Function myInitial() As Object
      Return 5
   End Function

   Function myCondition(ByVal item As Object) As Object
      Return CType(item, Long) < 11
   End Function

   Function myNextItem(ByVal item As Object) As Object
      Return CType(item, Long) + 1
   End Function

   Function mySelector(ByVal item As Object) As Object
      Return item
   End Function
   Sub Main()
      Dim test As Collection = Generate(
         AddressOf myInitial,
         AddressOf myCondition,
         AddressOf myNextItem,
         AddressOf mySelector)
      For Each item As Object In test
         Console.WriteLine(item)
      Next
      Console.ReadKey()
   End Sub
End Module
Подсчет среднего значения с условием в Power Pivot
 
Доброе время суток
Цитата
Артем написал:
посчитать среднее в каждом месяце
Где посчитать? Если речь идёт о вычисляемом столбце, то
Код
=CALCULATE(AVERAGE('Таблица1'[Строк]); ALLEXCEPT('Таблица1'; 'Таблица1'[Дата]))

P. S. Только какой в этом священный смысл?
Power Query не показывает таблицу из сайта
 
Цитата
Ибрагим Белхороев написал:
это через power query?
Да, но версия для Power BI Desktop, а не для Excel. По крайней мере 2016. Что там в 2019 и 365 сейчас не скажу, но месяца два назад подобного не было, хотя в BI это уже года два как есть.
Power Query не показывает таблицу из сайта
 
Цитата
Jack Famous написал:
Это не то?
Привет, Алексей.
Нет, не то. Это то, что потом скрипты после загрузки исходного кода страницы формируют. А вот Power Query читает ровно то, что можно увидеть по ПКМ - исходный код страницы (что там в меню - зависит от браузера).
Цитата
Ибрагим Белхороев написал:
почему Power Query сам не преобразовывает
Об этом, полагаю, могут сообщить только разработчики Power Query. Но они наш форум вряд ли посещают.
Updated.
А вот Power BI вполне себе может тянуть динамическое содержимое
Изменено: Андрей VG - 14.09.2021 14:01:32
Power Query не показывает таблицу из сайта
 
И вам тоже - здравствуйте.
Цитата
Ибрагим Белхороев написал:
не показывает таблицу из сайта
Посмотрите код страницы - попробуйте найти там тэг <table ;)
Power Query - Удаление из столбца текстовых значений в таблице всех элементов, указанных в отдельном списке
 
Доброе время суток.
Цитата
Kirill Gureev написал:
Просидел долго, результат не утешителен.
Кирилл, для начала - решите задачу на алгоритмическом уровне с учётом всех ограничений (и самым главным ограничением - Power Query - функциональный язык программирования), а уж потом переходите к решению в Power Query - собственно поиску пересечения алгоритмического решения с существующими функциями Power Query.
Power query - функции в запросах (теоретическое разъяснение)
 
Доброе вермя суток
Цитата
Kirill Gureev написал:
должен откуда-то происходить вызов
Вызов выполняется в теле функции List.Accumulate
Вариант тела Accumulate на псевдо Basic
Код
Public Function Accumulate(ByVal list As Collection, ByVal seed As Object, ByVal accumulator As Function) As Object
    Dim nextItem As Object, result As Object
    result = Clone(seed)
    For Each nextItem In list
        result = accumulator(result, nextItem)
    Next
    Accumulate = result
End Function
Изменено: Андрей VG - 11.09.2021 08:54:55
PQ разный формат даты
 
Цитата
evgeniygeo написал:
могут быть пустые строчки
Так в чём проблема? Просто удалить null элементы списка для анализа. Или вы код не хотите изучать?!
Код
items = List.Transform(List.RemoveNulls(Table.Column(forTable, dateColumnName)), each listItemToNumber(Text.Split(_, "/")))
PQ разный формат даты
 
Цитата
evgeniygeo написал:
Если хоть одно значение имеет больше 12 в начале, то это RU-столбец, а если все меньше или равны 12 то EN
Крайне наивно. А что если в столбце только одно значение 08/09/2021 - это 8 сентября или 9 августа? Код ниже даст 9 августа :)
Код
let
    listItemToNumber = (items as list) as list => List.Transform(items, Number.From),
    transformDateColumn = (forTable as table, dateColumnName as text) =>
    let
        items = List.Transform(Table.Column(forTable, dateColumnName), each listItemToNumber(Text.Split(_, "/"))),
        defineMax = List.Transform(items, each if _{0} > _{1} then [pos = 0, max = _{0}] else [pos = 1, max = _{1}]),
        max = List.Max(defineMax, null, (a, b) => a[max] - b[max]),
        cultureSign = if max[pos] = 0 then "ru-RU" else "en-US"
    in
        Table.TransformColumnTypes(forTable, {{dateColumnName, Date.Type}}, cultureSign),
    Source = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    test = transformDateColumn(Source, "В2")
in
    test
PQ разный формат даты
 
Цитата
evgeniygeo написал:
в столбце могут быть либо RU, либо EN,
Как однозначно по содержимому столбца это определить - когда RU, а когда EN? По его названию?
PQ разный формат даты
 
Цитата
evgeniygeo написал:
работает только для EN
Ну, а что вы собственно хотели? Как аукнулось - так и откликнулось. Ну, можно в вашем случае попытаться разбить текст по / и по второму элементу получившегося списка определить, что там есть число большее 12 - тогда там день и формат mm/dd/yyyy.
Но, что если там числа не превышающие 12? Тогда как автоматически определить это формат mm/dd/yyyy или dd/mm/yyyy? Предложите однозначный критерий для такого определения.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 394 След.
Наверх