бинго! проблема была в порядке сортировки в начале - по дате, потом по статусу 2 дня тупил, а решение на поверхности... sotnikov, спасибо за содействие
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
в примере работает, а почему в исходнике не срабатывает - не понимаю
Скрытый текст
f=(x)=>Table.AddColumn(x,"Дата появления",each List.Min(x[Дата обновления])), sort = Table.Sort( #"Текст в верхнем регистре", {"Name", "Направление требования", "Применимое право", "Предприятие Группы" , "Контрагент", "Номер договора", "Текущий статус (результат) работы с нарушением"} ), to = Table.Combine(Table.Group(sort,"Текущий статус (результат) работы с нарушением",{"tmp",f},GroupKind.Local)[tmp]),
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
sotnikov, благодарю за пример, но в моем случае не рабочий вариант в первоначальном примере указал просто пример, думал далее адаптирую но нет сложность в том, что один и тот же статус может меняться несколько раз
расширил пример (подсветил столбцы для группировки) з.ы. в исходной таблице - столбцов 6 для группировки и 25 остальных атрибутов)
Всем привет! Требуется проиндексировать группу значений и вывести минимальную дату В примере указал как есть и что нужно получить. Как я понимаю тут нужно использовать оконную функцию (комбинацию Table.Group и Table.AddIndexColumn с предварительной сортировкой) но у меня получается какая то ж...
Дополнительно ниже укажу оригинальный код. (мб пригодится) я изначально искал минимальную дату, но потом увидел дублирование статусов и понял недостаток этого подхода. буду благодарен за помощь!
Скрытый текст
Код
let
Источник = Folder.Files("...."),
#"Conect" = Table.AddColumn(Источник, "Исх", each function([Folder Path]&[Name])),
#"Другие удаленные столбцы" = Table.SelectColumns(Conect,{"Name", "Исх"}),
#"Развернутый элемент Исх" = Table.ExpandTableColumn(#"Другие удаленные столбцы", "Исх", {"Стадия", "Направление требования", "Применимое право", "Предприятие Группы", "Контрагент", "Номер договора", "Заявленные требования", "Дата истечения срока исковой давности", "Дата нарушения", "Дата информирования (выявления) нарушения", "Номер RITM в Creatio", "Дата правового заключения", "Текущий статус (результат) работы с нарушением", "Дата претензии", "Номер претензии", "Дата заключения службы безопасности", "Дата поступления (направления) претензии", "Дата исп. треб., указ. в претензии", "Текущий статус (результат) работы с претензией", "Контрольный срок (дата следующего действия)", "Плановая дата завершения работы с треб.", "Основной долг. Сумма требований (руб.)", "Основной долг. Реальный ко взысканию (руб.)", "Основной долг. Сумма факт. удовл. требований (руб.)", "Основной долг. Дата факт. удовл. треб.", "Основной долг. Способ удовл. треб. (фактический)", "Неустойка. Сумма требований (руб.)", "Неустойка. Реальная ко взысканию (руб.)", "Неустойка. Сумма факт. удовл. требований (руб.)", "Неустойка. Дата факт. удовл. треб.", "Неустойка. Способ удовл. треб. (фактический)", "Реквизиты ответа на претензию", "Дополнительная информация", "Отв. исп. от предп. Группы", "Отв. исп. от ГО", "Подразделение ФЦО", "Отв. исп. от ФЦО", "Дата подачи иска в суд", "Номер дела в суде", "Есть текущие замечания", "Замечания и комментарии", "Категория претензии", "Дата записи"}, {"Стадия", "Направление требования", "Применимое право", "Предприятие Группы", "Контрагент", "Номер договора", "Заявленные требования", "Дата истечения срока исковой давности", "Дата нарушения", "Дата информирования (выявления) нарушения", "Номер RITM в Creatio", "Дата правового заключения", "Текущий статус (результат) работы с нарушением", "Дата претензии", "Номер претензии", "Дата заключения службы безопасности", "Дата поступления (направления) претензии", "Дата исп. треб., указ. в претензии", "Текущий статус (результат) работы с претензией", "Контрольный срок (дата следующего действия)", "Плановая дата завершения работы с треб.", "Основной долг. Сумма требований (руб.)", "Основной долг. Реальный ко взысканию (руб.)", "Основной долг. Сумма факт. удовл. требований (руб.)", "Основной долг. Дата факт. удовл. треб.", "Основной долг. Способ удовл. треб. (фактический)", "Неустойка. Сумма требований (руб.)", "Неустойка. Реальная ко взысканию (руб.)", "Неустойка. Сумма факт. удовл. требований (руб.)", "Неустойка. Дата факт. удовл. треб.", "Неустойка. Способ удовл. треб. (фактический)", "Реквизиты ответа на претензию", "Дополнительная информация", "Отв. исп. от предп. Группы", "Отв. исп. от ГО", "Подразделение ФЦО", "Отв. исп. от ФЦО", "Дата подачи иска в суд", "Номер дела в суде", "Есть текущие замечания", "Замечания и комментарии", "Категория претензии", "Дата записи"}),
#"Добавлен пользовательский объект" = Table.AddColumn(#"Развернутый элемент Исх", "Дата обновления", each DateTime.LocalNow()),
#"Измененный тип" = Table.TransformColumnTypes(#"Добавлен пользовательский объект",{{"Name", type text}, {"Стадия", type text}, {"Направление требования", type text}, {"Применимое право", type text}, {"Предприятие Группы", type text}, {"Контрагент", type text}, {"Номер договора", type text}, {"Заявленные требования", type text}, {"Дата истечения срока исковой давности", type date}, {"Дата нарушения", type date}, {"Дата информирования (выявления) нарушения", type date}, {"Номер RITM в Creatio", type text}, {"Дата правового заключения", type date}, {"Текущий статус (результат) работы с нарушением", type text}, {"Дата претензии", type date}, {"Номер претензии", type text}, {"Дата заключения службы безопасности", type date}, {"Дата поступления (направления) претензии", type date}, {"Дата исп. треб., указ. в претензии", type date}, {"Текущий статус (результат) работы с претензией", type text}, {"Контрольный срок (дата следующего действия)", type date}, {"Плановая дата завершения работы с треб.", type date}, {"Основной долг. Сумма требований (руб.)", Int64.Type}, {"Основной долг. Реальный ко взысканию (руб.)", Int64.Type}, {"Основной долг. Сумма факт. удовл. требований (руб.)", Int64.Type}, {"Основной долг. Дата факт. удовл. треб.", type date}, {"Основной долг. Способ удовл. треб. (фактический)", type text}, {"Неустойка. Сумма требований (руб.)", type number}, {"Неустойка. Реальная ко взысканию (руб.)", type number}, {"Неустойка. Сумма факт. удовл. требований (руб.)", type number}, {"Неустойка. Дата факт. удовл. треб.", type date}, {"Неустойка. Способ удовл. треб. (фактический)", type text}, {"Реквизиты ответа на претензию", type text}, {"Дополнительная информация", type text}, {"Отв. исп. от предп. Группы", type text}, {"Отв. исп. от ГО", type text}, {"Подразделение ФЦО", type text}, {"Отв. исп. от ФЦО", type text}, {"Дата подачи иска в суд", type date}, {"Номер дела в суде", type text}, {"Есть текущие замечания", type text}, {"Замечания и комментарии", type text}, {"Категория претензии", type text}, {"Дата обновления", type datetime}, {"Дата записи", type date}}),
#"Добавляем старые записи" = Table.Combine({#"Измененный тип", #"Старые записи"}),
#"Удаленные дубликаты" = Table.Distinct(#"Добавляем старые записи"),
#"Текст в верхнем регистре" = Table.TransformColumns(#"Удаленные дубликаты",{{"Основной долг. Способ удовл. треб. (фактический)", Text.Upper, type text}, {"Неустойка. Способ удовл. треб. (фактический)", Text.Upper, type text}, {"Категория претензии", Text.Upper, type text}}),
//находим дату когда изменился статус по стобцу "Текущий статус (результат) работы с нарушением"
Дата_нарушения = Table.ExpandTableColumn(
Table.NestedJoin(
#"Текст в верхнем регистре"
, {"Name", "Направление требования", "Применимое право", "Предприятие Группы", "Контрагент", "Номер договора", "Текущий статус (результат) работы с нарушением"}
, Table.Group(
#"Текст в верхнем регистре"
, {"Name", "Направление требования", "Применимое право", "Предприятие Группы", "Контрагент", "Номер договора", "Текущий статус (результат) работы с нарушением"}
, {{"Дата появл-ие нарушения", each List.Min([Дата обновления]), type nullable datetime}})
, {"Name", "Направление требования", "Применимое право", "Предприятие Группы", "Контрагент", "Номер договора", "Текущий статус (результат) работы с нарушением"}
, "Старые записи", JoinKind.LeftOuter)
, "Старые записи", {"Дата появл-ие нарушения"}, {"Дата появл-ие нарушения"}),
//находим дату когда изменился статус по стобцу "Текущий статус (результат) работы с претензией"
Дата_претензии = Table.ExpandTableColumn(
Table.NestedJoin(
Дата_нарушения
, {"Name", "Направление требования", "Применимое право", "Предприятие Группы", "Контрагент", "Номер договора", "Текущий статус (результат) работы с претензией"}
, Table.Group(
#"Текст в верхнем регистре"
, {"Name", "Направление требования", "Применимое право", "Предприятие Группы", "Контрагент", "Номер договора", "Текущий статус (результат) работы с претензией"}
, {{"Дата появл-ие претензиции", each List.Min([Дата обновления]), type nullable datetime}})
, {"Name", "Направление требования", "Применимое право", "Предприятие Группы", "Контрагент", "Номер договора", "Текущий статус (результат) работы с претензией"}
, "Старые записи", JoinKind.LeftOuter)
, "Старые записи", {"Дата появл-ие претензиции"}, {"Дата появл-ие претензии"})
in
Дата_претензии
Всем привет! При формирования столбцов из столбца сведений (атрибут) выдает ошибку, т.к. ожидается пара атрибут-значение, т.е. единичное совпадение А как реализовать когда множество значений (список)? Стандартный функционал не позволяет, а вложенность реализовать не получилось. Буду благодарен за помощь!
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
Всем привет! Есть Excel с перечень проектов, в эти проекты периодически заносятся (обновляются) данные. Мне нужно найти последнюю запись по каждому проекту, а потом просуммировать все значения. Решение нужно через пивот. Вроде (классика) через SUMMARIZE нужно решать, а не получается.
Буду благодарен за помощь!
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
surkenny, Я не назвал бы это багом. Скорее всего как - неявное правило. У меня 4 таблицы с разделенной иерархией (связи через родительские ID). Так вот, первая задача просто построить по строкам сводную (без вычислений), где и столкнулся с таким вопросом.
Цитата
написал: В Power BI, кроме двунаправленной фильтрации, которую лучше вообще не использовать, пока не изучите рее работу, можно фильтровать визуал по значению меры. В excel - нельзя. Просто вытащите на визуал какую-то меру.
Труды Марко Руссо и Альберто Феррари в помощь)
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
написал: если в сводную не загрузить расчетные значения, то в списке со строками выгружаются все возможные варианты исходных данных независимо от установленных связей. Похоже это особенность сводных Power Pivot.
2024. Прием. Проблема та-же. Столкнулся впервые с этим))
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
БМВ, Спасибо! Вы оказывается правки добавили в код. Теперь работает! Я как понимаю, тут перебор всех строк на активном листе? Это оказывается и не критично, времени занимает сек 10
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
Есть таблица из 30+ столбцов и "n" кол-во строк. Проблема возникает когда отправляешь на печать таблицу. На экране проблем нет, но при печати некоторые строки обрезаются снизу, не хватает высоты строки (около 5 пикселей)
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
Sanja, спасибо. изменил все наименования переменных
Теперь ругается на строке "row.RowHeight = row.RowHeight + 10"
Скрытый текст
Код
Sub УвелечениеВысотыСтрок()
Dim wsq As Worksheet
Dim rowq As Range
Dim cellq As Range
Dim isEmptyq As Boolean
' Установка активного листа
Set wsq = ActiveSheet
' Перебор всех строк в листе
For Each rowq In wsq.UsedRange.Rows
isEmptyq = True
' Проверка каждой ячейки в строке на наличие данных
For Each cellq In rowq.Cells
If Not isEmpty(cellq.Value) Then
isEmptyq = False
Exit For
End If
Next cellq
' Увеличение высоты строки, если она не пуста
If Not isEmptyq Then
row.RowHeight = row.RowHeight + 10
End If
Next rowq
End Sub
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
Всем привет! Скачал готовый макрос на просторах интернета, но столкнулся с ошибкой в строке "If Not isEmpty(cell.Value) Then " выделяет "isEmpty". Ознакомился со статьей Дмитрия и как я понял проблема в том, что используется переменная которая не объявлена, но это не так. Помогите, пожалуйста, сделать макрос рабочим.
Скрытый текст
Код
Sub УвелечениеВысотыСтрок()
Dim ws As Worksheet
Dim row As Range
Dim cell As Range
Dim isEmpty As Boolean
' Установка активного листа
Set ws = ActiveSheet
' Перебор всех строк в листе
For Each row In ws.UsedRange.Rows
isEmpty = True
' Проверка каждой ячейки в строке на наличие данных
For Each cell In row.Cells
If Not isEmpty(cell.Value) Then
isEmpty = False
Exit For
End If
Next cell
' Увеличение высоты строки, если она не пуста
If Not isEmpty Then
row.RowHeight = row.RowHeight + 10
End If
Next row
End Sub