Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Группировка исходной таблицы по заданному условию
 
Всем привет!

Столкнулся со следующей задачей:
Дана таблица с данными по авиа перевозкам. В таблице есть столбцы назовем их "Пробег самолета" и "Количество сбоев". Задача стоит в следующем, необходимо посчитать, сколько было ошибок на пробегах например 0-100 км, 101-200, 201-300 и т.д. Это все прекрасно можно сделать с помощью добавления условного столбца. Но меня интересует задача с циклом, Чтобы  я один раз задал промежуток например в 100 км и потом таблица сама подстраивалась под нужные данные. Что должно получиться в итоге, добавил во вложение(сделано с помощью условных столбцов)
Подтолкните на пути решения
 
orelad, Нужен файл пример как есть и как нужно. С этим сводные справляются.
 
Извиняюсь, что сразу не указал. Интересует именно через PQ. Но для примера Вы правильно заметили, это можно легко сделать через сводную(группировка по полю)
 
Цитата
orelad написал:
Интересует именно через PQ
это прекрасно, пример где?
Каждому For свой Next
 
Добавил
Столбец причина, можно считать как количество
 
предположу что нужно как-то так) (кажется недавно кто-то делал такое в PQ)
Код
Sub mrshkei() 
Dim lr As Long, arr, x As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
Range("H:J").Clear
x = Application.InputBox("Укажите шаг диапазона", Type:=1)
x1 = Application.WorksheetFunction.Min(Range("B2:B" & lr))
x2 = Application.WorksheetFunction.Max(Range("B2:B" & lr))
ReDim arr(1 To Round(x2 / x / 2, 0), 1 To 3)
For i = LBound(arr) To UBound(arr)
    arr(i, 1) = x1
    x1 = x1 + x
    arr(i, 2) = x1
    arr(i, 3) = Application.WorksheetFunction.CountIfs(Columns(1), "Техотказ", Columns(2), ">=" & arr(i, 1), Columns(2), "<=" & arr(i, 2))
    x1 = x1 + 1
Next i
Range("H2").Resize(UBound(arr), 3) = arr
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, да результат именно такой, но нужно через PQ или DAX. Потом эти данные мне нужно будет визуализировать на дашборде
 
Mershik, да результат именно такой, но нужно через PQ или DAX. Потом эти данные мне нужно будет визуализировать на дашборде

Цитата
(кажется недавно кто-то делал такое в PQ)
Спасибо за Ваш ответ, а темкой не поделитесь?
 
Код
let
    f=(x)=>Excel.CurrentWorkbook(){[Name=x]}[Content],
    g=(x)=>Text.Format("#{0}-#{1}",{x*s,(x+1)*s}),
    h=(x)=>g(if x = null or x = "" then 0 else Number.RoundDown(x/s)), 
        
    s = f("step"){0}[шаг],
    from = Table.TransformColumns(Table.Sort(f("errors"),{"Пробег",Order.Ascending}),{"Пробег",h}),
    to = Table.Group(from, "Пробег", {"Количество", each Table.RowCount(_)})
in
    to
Каждому For свой Next
 
Уточните название темы  Сейчас очень общее, конкретная задача не просматривается. Заменят модераторы
 
Большое спасибо buchlotnik и Mershikза уделенное время. Задача решилась еще проще, в самом PowerBI. Сделал с помощью "Группы данных". Ваше решение для меня пока слишком хардкорное, хотя полностью решало поставленную задачу.
 
А на замечание модератора думаете реагировать?
 
Я подумал, что мне нужно самостоятельно изменить название темы, но я не смог это сделать.

Группировка исходной таблицы по заданному условию
 
Цитата
vikttur написал:
Заменят модераторы
Цитата
orelad написал:
Я подумал, что мне нужно самостоятельно изменить название темы,
Неужели Виктор написал так, что можно толковать двояко?
Страницы: 1
Читают тему (гостей: 1)
Наверх