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

Страницы: 1 2 3 След.
Поиск в массиве данных ячейки с похожим содержанием, Поиск в массиве данных ячейки с похожим содержанием
 
upd. v2 ( по методу Hugo убрал повторяющиеся слова)
напротив адреса 1 подставляется похожий адрес 2

вариант на pq

подобие можно регулировать играясь с Threshold = 0.8 (1 точно, 0 не точно)
Код
let
    listReplaceText =
        List.Buffer(
            {
                "ул.", "г.", "с.", "пр-кт.", "пом.", "зд.", "им.", "улица",
                "п.", "пр-кт", "пгт.", "рп.", "пер.", "стр.", "пр-т",
                "пр.", "№", "пл.", "б-р", "аул", "корпус", "ст-ца.", ",", ".", "-"
            }
        ),
    listCount = List.Count( listReplaceText ),
    fTextReplace = ( srcText, step ) => 
        if step < listCount
        then @fTextReplace( Text.Replace( srcText, listReplaceText{ step }, "" ), step + 1 )
        else srcText,

    fTable = ( tableName, columnName ) => [
        excelCurrentWorkbook = Excel.CurrentWorkbook( ){ [ Name = tableName ] }[ Content ],
        tableSelectRows = Table.SelectRows( excelCurrentWorkbook, ( x ) => Record.Field( x, columnName ) <> null ),
        tableDistinct = Table.Distinct( tableSelectRows ),
        tableAddColumn =
            Table.AddColumn(
                tableDistinct,
                columnName & "_Fix",
                ( x ) => [
                    recordField = Record.Field( x, columnName ),
                    textFrom = Text.From( recordField ),
                    textReplace = fTextReplace( textFrom , 0 )
                ][ textReplace ],
                type text
            )        
    ][ tableAddColumn ],

    tableLeft = fTable( "Table1", "Адрес 1" ),
    tableRight = fTable( "Table2", "Адрес 2" ),
    tableAddIndexColumn = Table.AddIndexColumn( tableLeft, "Index" ),

    tableFuzzyJoin =
        Table.FuzzyJoin(
            tableAddIndexColumn, { "Адрес 1_Fix" },
            tableRight, { "Адрес 2_Fix" },
            JoinKind.LeftOuter,
            [
                IgnoreCase = true,
                IgnoreSpace = true,
                Threshold = 0.8
            ]
        ),
    tableGroup =
        Table.Group(
            tableFuzzyJoin,
            { "Адрес 1" },
            {
                {
                    "Адрес 2",
                    ( x ) => Text.Combine( x[Адрес 2], "#(lf)" ),
                    type text
                },
                {
                    "Количество адресов похожих",
                    ( x ) => List.Count( List.RemoveNulls( x[Адрес 2] ) ),
                    Int64.Type
                }
            }
        )
in
    tableGroup
Изменено: te1n - 28.07.2023 12:00:25
Разбить данный по ячеикам и проставить цены
 
вариант
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    tableSelectRows = Table.SelectRows( Source, ( x ) => x[ Столбец1 ] <> null ),
    tableToList =
        Table.ToList(
            tableSelectRows,
            ( x ) => [
                textSplit = Text.Split( Text.From( x{ 0 } ), "#(lf)" ),
                listCombine = { textSplit } & { x{ 1 } }
            ][ listCombine ]
        ),
    tableFromList = Table.FromList( tableToList, ( x ) => x ),
    tableExpandListColumn = Table.ExpandListColumn( tableFromList, "Column1" )
in
    tableExpandListColumn
Списание комплектующих со Склада которые входят в состав изделия в Exel
 
Hugo, кнопку скачать перетащить в папку
групповой фильтр по условиям, Макрос, pq.
 
test

из исходного файла поместите данные и обновите запрос
Распознавание региона по номеру сотового телефона
 
List.PositionOf – или ПОИСКПОЗ на стероидах
#АнатомияФункций - List.PositionOf

Всем привет!
При решении задач периодически возникает необходимость найти позицию определённого значения в списке, для этого разумно использовать List.PositionOf. И на этом можно бы было завершить пост, если бы не одно обстоятельство – это функция четырёх аргументов, а значит нас ждёт много вкусного ))) Поехали:
List.PositionOf(list as list, value as any, optional occurrence as nullable number, optional equationCriteria as any) as any

Обязательные аргументы:
list – сам список
value – искомое значение

Необязательные аргументы:
occurrence – «вхождение» - принимает варианты Occurrence.First, Occurrence.Last, Occurrence.All – т.е. первое, последнее или все
equationCriteria – критерий сравнения – сюда можно написать Comparer или собственную функцию от двух аргументов (current,value)=> - обратите внимание на порядок – сначала current – проверяемый элемент списка, затем value – наше искомое значение

Ну и пример, ниже разберем по шагам:
Код
let
    a = List.PositionOf({1..10},5), //4
    b = List.PositionOf({"a".."z"},"d"), //3 
    c = List.PositionOf({1..10},11), //-1 - значение не найдено
    d = List.PositionOf({1,2,null,3,4,null,5},null), //2
    e = List.PositionOf({1,2,null,3,4,null,5},null,Occurrence.First),//2
    f = List.PositionOf({1,2,null,3,4,null,5},null,Occurrence.Last), //5
    g = List.PositionOf({1,2,null,3,4,null,5},null,Occurrence.All), //{2,5}
    h = List.PositionOf({1,2,null,3,4,null,5},null,Occurrence.First,(c,v)=>c<>v),//0
    i = List.PositionOf({1,2,null,3,4,null,5},null,Occurrence.Last,(c,v)=>c<>v),//6
    j = List.PositionOf({1,2,null,3,4,null,5},null,Occurrence.All,(c,v)=>c<>v),//{0,1,3,4,6}
    k = List.PositionOf({1..5},3,Occurrence.All,(c,v)=>c<v), //{0,1}
    l = List.PositionOf({1..5},3,Occurrence.All,(c,v)=>c>v), //{3,4}
    m = List.PositionOf({1,2,null,3,4,null,5},3,Occurrence.All,(c,v)=>if c is null then false else c>v),//{4,6}
    n = List.PositionOf({"a".."z"},"D",Occurrence.All,Comparer.OrdinalIgnoreCase) //3
in
    n

Шаги a -d – простое использование с двумя обязательными аргументами
a – ищем и находим число в списке, обращаем внимание, что нумерация элементов идёт с нуля
b – то же самое, но для текста
c – запоминаем, что в случае, если элемент не найден, вернётся не ошибка, а значение -1
d – искать можно и null

Шаги e – g – добавляем Occurrence
e – сравните с шагом d – понимаем, что по умолчанию используется Occurrence.First – т.е. ищется первое вхождение
f – Occurrence.Last даст нам последнее вхождение
g – Occurrence.All вернёт список всех вхождений значения

Шаги h – n – подключаем тяжёлую артиллерию – четвертый аргумент)))
Что делать, если мы не знаем конкретное значение, а просто ищем первый/последний непустой элемент? Смотрим шаги h – j – в списке ищем null, но с функцией (c,v)=>c<>v – т.е. не равно null
k,l - аналогично можно искать значения меньшие или большие заданного
m – функция может быть сложной – в данном случае в списке есть null и их невозможно сравнить с числом, поэтому для любого null возвращаем false, а остальные значения сравниваем с искомым
n – ну и вариант с текстами – в четвертом аргументе, например, можно прописать условие игнорирования регистра

Как-то так – очередная функция, вся мощь которой проявляется в необязательных аргументах. Экспериментируйте!

Надеюсь, было полезно.
Всех благ!
@buchlotnik

source: https://t.me/pbi_pq_from_tank/139
Извлечение символа по условию, PQ
 
Код
Text.RemoveRange( [ текст ], 0 )
Изменено: te1n - 25.07.2023 07:58:28
Можно ли заставить повер квери собирать файлы быстрее
 
Алёна П, у вас такая конструкция в редакторе, в нем отредактируйте как нужно, потом уже объединяйте файлы
Изменено: te1n - 25.07.2023 00:27:03
Можно ли заставить повер квери собирать файлы быстрее
 
сначала по отдельности файл преобразуйте, потом объединяйте
Можно ли заставить повер квери собирать файлы быстрее
 
Alien Sphinx, в каждой девушке должна быть загадка
Расчет планового расхода корма., Разбиение помесячно диапазона времени большего чем месяц.
 
может что-то такое на PQ, отсчет на след день со дня посадки со дня посадки
Изменено: te1n - 25.07.2023 17:05:14
Расчет значений по нескольким критериям
 
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    tableAddColumn =
        Table.AddColumn(
            Source,
            "Количество",
            ( x ) =>
                if x[ Тип ] = "покупка"
                then x[ #"Кол-во" ]
                else -x[ #"Кол-во" ]
        ),
    tableGroup =
        Table.Group(
            tableAddColumn,
            { "№ карты", "Фамилия" },
            {
                {
                    "Количество",
                    ( x ) => List.Sum( x[ Количество ] ),
                    type number
                }
            }
        )
in
    tableGroup
Изменено: te1n - 23.07.2023 21:40:03
Собрать данные по заданной маске с листов и сформировать сводную таблицу на отдельном листе, Собрать данные по заданной маске с листов и сформировать сводную таблицу на отдельном листе
 
Вкладка Данные -> Обновить все

upd. убрал учет регистров
Собрать данные по заданной маске с листов и сформировать сводную таблицу на отдельном листе, Собрать данные по заданной маске с листов и сформировать сводную таблицу на отдельном листе
 
вариант
Замена текста после определенного символа - между 4 и 6 "слеш" в ссылке
 
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    tableToList =
        Table.ToList(
            Source,
            ( x ) => [
                textSplit = Text.Split( x{ 0 }, "/" ),
                listReplaceValue = List.ReplaceValue( textSplit, textSplit{ 4 }, x{ 1 }, Replacer.ReplaceText ),
                textCombine = Text.Combine( listReplaceValue, "/" )
            ][ textCombine ]
        )
in
    tableToList
или лучше так
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    tableToList =
        Table.ToList(
            Source,
            ( x ) => [
                textSplit = Text.Split( x{ 0 }, "/" ),
                listReplaceRange = List.ReplaceRange( textSplit, 4, 1, { x{ 1 } } ),
                textCombine = Text.Combine( listReplaceRange, "/" )
            ][ textCombine ]
        )
in
    tableToList
Изменено: te1n - 23.07.2023 13:25:52
SIMIF in POWER QUERY, сумма колонки основанная на данных другой колонки
 
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    tableGroup =
        Table.Group(
            Source,
            { "Description" },
            {
                {
                    "temp",
                    ( x ) => [
                        listSum = List.Sum( x[ Amount ] ),
                        Account = x[ Description ]{ 0 },
                        tableAddColumn =
                            Table.AddColumn(
                                x,
                                "SumColumn",
                                ( y ) => if Account = y[ Account ] then listSum else null
                            )
                    ][ tableAddColumn ],
                    type table
                }
            }
        ),
    tableCombine = Table.Combine( tableGroup[ temp ] )
in
    tableCombine
Изменено: te1n - 22.07.2023 20:28:07
Распознавание региона по номеру сотового телефона
 
тест на файле от Alien Sphinx
Код
let
    codes = Excel.CurrentWorkbook(){[Name="codes"]}[Content],
    tableRemoveColumns = Table.SelectColumns(codes,{"Номер", "Регион"}),
    tableRenameColumns = Table.RenameColumns(tableRemoveColumns,{{"Номер", "Name"}, {"Регион", "Value"}}),
    tableTransformColumnTypes = Table.TransformColumnTypes(tableRenameColumns,{{"Name", type text}}),
    recordFromTable = Record.FromTable( tableTransformColumnTypes ),
    listTransform = List.Buffer( List.Transform( tableTransformColumnTypes[ Name ], Text.Length ) ),
    maxLength = List.Max( listTransform ),
    minLength = List.Min( listTransform ),

    t = Excel.CurrentWorkbook(){[Name="tel"]}[Content],
    tableAddColumn =
        Table.AddColumn(
            t,
            "Регион",
            ( x ) => [
                textFrom = Text.From( x[ Телефон ] ),
                textEnd = Text.End( textFrom, 10 ),
                textStart = Text.Start( textEnd, maxLength ),

                rec = ( textSrc, textLength ) => [
                    textLook = Text.Start( textSrc, textLength  ),
                    result = Record.FieldOrDefault( recordFromTable, textLook ),
                    circle = if result <> null or textLength = minLength then result else @rec( textLook, textLength - 1 )
                ][ circle ],

                result = rec( textStart, maxLength )
            ][ result ]
        )
in
    tableAddColumn
v2 (- лишний textStart)
Код
let
    codes = Excel.CurrentWorkbook(){[Name="codes"]}[Content],
    tableRemoveColumns = Table.SelectColumns(codes,{"Номер", "Регион"}),
    tableRenameColumns = Table.RenameColumns(tableRemoveColumns,{{"Номер", "Name"}, {"Регион", "Value"}}),
    tableTransformColumnTypes = Table.TransformColumnTypes(tableRenameColumns,{{"Name", type text}}),
    recordFromTable = Record.FromTable( tableTransformColumnTypes ),
    listTransform = List.Buffer( List.Transform( tableTransformColumnTypes[ Name ], Text.Length ) ),
    maxLength = List.Max( listTransform ),
    minLength = List.Min( listTransform ) - 1,

    t = Excel.CurrentWorkbook(){[Name="tel"]}[Content],
    tableTransformColumnTypes_Text = Table.TransformColumnTypes(t,{{"Телефон", type text}}),
    tableAddColumn =
        Table.AddColumn(
            tableTransformColumnTypes_Text,
            "Регион",
            ( x ) => [
                textEnd = Text.End( x[ Телефон ], 10 ),
                textStart = Text.Start( textEnd, maxLength ),

                rec = ( textSrc, textLength ) => [
                    field = Record.FieldOrDefault( recordFromTable, textSrc ),
                    circle =
                        if field <> null or textLength = minLength
                        then field
                        else @rec( Text.Start( textSrc, textLength ), textLength - 1 )
                ][ circle ],

                result = rec( textStart, maxLength - 1 )
            ][ result ]
        )
in
    tableAddColumn
Изменено: te1n - 22.07.2023 17:34:08
Трансформация столбца в таблицу сложный пример, Необходимо трансформировать столбец со скученными данными в таблицу
 
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    tableTransformColumns =
        Table.TransformColumns(
            Source,
            {
                "Атрибут",
                ( x ) => Text.BeforeDelimiter( x, "." )
            }
        ),
    tableGroup =
        Table.Group(
            tableTransformColumns,
            { "Код ТМЦ", "Заказ" },
            {
                {
                    "temp",
                    ( x ) => [
                        tableGroup_Атрибут =
                            Table.Group(
                                x,
                                { "Атрибут" },
                                {
                                    { "temp", ( z ) => z[ Значение ] }
                                }
                            ),
                            tableFromColumns_Атрибут =
                                Table.FromColumns(
                                    tableGroup_Атрибут[ temp ],
                                    tableGroup_Атрибут[ Атрибут ]
                                )
                    ][ tableFromColumns_Атрибут ],
                    type table
                }
            }
        ),
    #"Expanded {0}" = Table.ExpandTableColumn(tableGroup, "temp", {"Технаряды", "Создатели ТН", "Даты создания ТН", "Кол-во по ТН"}, {"Технаряды", "Создатели ТН", "Даты создания ТН", "Кол-во по ТН"})
in
    #"Expanded {0}"
Изменено: te1n - 20.07.2023 11:19:49 (y->x)
Извлечь обращения, которые были получены в течение 20 минут после первого.
 
вариант
upd. 0 < duration <= 20
Код
let
    src_1 = [
        excelCurrentWorkbook = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
        tableRenameColumns =
            Table.RenameColumns(
                excelCurrentWorkbook,
                {
                    { "Номер телефона", "number" },
                    { "Дата и время обращения", "Дата и время первого обращения" }
                }
            )
    ][ tableRenameColumns ],

    src_2 = Excel.CurrentWorkbook(){[Name="Таблица13"]}[Content],
    tableJoin =
        Table.Join(
            src_1, { "number" },
            src_2, { "Номер телефона" }
        ),
    tableGroup =
        Table.Group(
            tableJoin,
            { "number", "Дата и время первого обращения" },
            {
                {
                    "temp",
                    ( x ) => [
                        dateTime_First = x[ #"Дата и время первого обращения" ]{ 0 },
                        tableSelectRows =
                            Table.SelectRows(
                                x,
                                ( y ) => [
                                    duration = Duration.TotalMinutes( y[ #"Дата и время обращения" ] - dateTime_First ),
                                    cond = duration > 0 and duration <= 20
                                ][ cond ]
                            ),
                        tableSelectColumns = Table.SelectColumns( tableSelectRows, { "Номер телефона", "Дата и время первого обращения", "Дата и время обращения" } )
                    ][ tableSelectColumns ],
                    type table
                }
            }
        ),
    tableCombine = Table.Combine( tableGroup[ temp ] )
in
    tableCombine
Изменено: te1n - 20.07.2023 08:19:37
Удаление дублей строк по всей таблице Excel. Оставить строки с уникальными связками артикулов. Power Query.
 
Ольга Аба, test
upd. + listSort в tableGroup_step2
upd2. - тоже не то, криво собирает в некоторых ситуациях
upd3. группировка по : артикул -> номер -> снова артикул ->..
Код
let
    Source = Excel.CurrentWorkbook(){[Name="СкладУчет"]}[Content],
    tableGroup_step1 =
        Table.Group(
            Source,
            { "Артикул" },
            {
                {
                    "temp",
                    ( x ) => [
                        sValue = x[ #"Номер стелажа" ]{ 0 },
                        tableAddColumn = Table.AddColumn( x, "key_step1", ( y ) => sValue, type text )
                    ][ tableAddColumn ],
                    type table
                }
            }
        ),
    tableCombine_step1 = Table.Combine( tableGroup_step1[ temp ] ),
    tableGroup_step2 =
        Table.Group(
            tableCombine_step1,
            { "Номер стелажа" },
            {
                {
                    "temp",
                    ( x ) => [
                        sValue = List.Sort( x[ key_step1 ] ){ 0 },
                        tableAddColumn = Table.AddColumn( x, "key_step2", ( y ) => sValue, type text )
                    ][ tableAddColumn ],
                    type table
                }
            }
        ),
    tableCombine_step2 = Table.Combine( tableGroup_step2[ temp ] ),
    tableGroup_step2_1 =
        Table.Group(
            tableCombine_step2,
            { "Артикул" },
            {
                {
                    "temp",
                    ( x ) => [
                        sValue = x[ key_step2 ]{ 0 },
                        tableAddColumn = Table.AddColumn( x, "key_step2_1", ( y ) => sValue, type text )
                    ][ tableAddColumn ],
                    type table
                }
            }
        ),
    tableCombine_step2_1 = Table.Combine( tableGroup_step2_1[ temp ] ),
    tableGroup_step3 =
        Table.Group(
            tableCombine_step2_1,
            { "key_step2" },
            {
                {
                    "temp",
                    ( x ) => [
                        sValue = x[ key_step2_1 ]{ 0 },                     
                        tableAddColumn = Table.AddColumn( x, "key", ( y ) => sValue, type text )
                    ][ tableAddColumn ],
                    type table
                }
            }
        ),
    tableCombine_step3 = Table.Combine( tableGroup_step3[ temp ] ),
    tableColumnNames = List.Distinct( tableCombine_step3[ Брэнд ] ),
    tableGroup =
        Table.Group(
            tableCombine_step3,
            { "key" },
            {
                {
                    "temp",
                    ( x ) => [
                        src = x,
                        tableDistinct = Table.Distinct( x, { "key", "Артикул", "Брэнд" } ),
                        tableGroup =
                            Table.Group(
                                tableDistinct,
                                { "Брэнд" },
                                {
                                    {
                                        "temp",
                                        ( y ) => y[ Артикул ]
                                    }
                                }
                            ),
                        tableRowCount = Table.RowCount( tableGroup ),

                        Брэнд = List.Buffer( tableGroup[ Брэнд ] ),
                        Артикул = List.Buffer( tableGroup[ temp ] ),

                        fMakeTable = ( leftTable, rightList, rightName ) =>
                            Table.Join(
                                leftTable, {},
                                Table.FromColumns( { rightList }, { rightName } ), {}
                            ),
                        tableFromColumns_First = Table.FromColumns( { Артикул{ 0 } }, { Брэнд{ 0 } } ),
                        listGenerate =
                            if tableRowCount = 1 then tableFromColumns_First
                            else if tableRowCount = 2
                                then
                                    fMakeTable(
                                        tableFromColumns_First,
                                        Артикул{ 1 }, Брэнд{ 1 }
                                    )
                            else
                                List.Last(
                                    List.Generate(
                                        ( ) => [
                                            i = 1,
                                            tableJoin =
                                                fMakeTable(
                                                    tableFromColumns_First,
                                                    Артикул{ 1 }, Брэнд{ 1 }
                                                )
                                        ],
                                        each [ i ] < tableRowCount,
                                        each [
                                            i = [ i ] + 1,
                                            tableJoin = fMakeTable( [ tableJoin ], Артикул{ i }, Брэнд{ i } )
                                        ],
                                        each [ tableJoin ] 
                                    )
                                )
                    ][ listGenerate ],
                    type table
                }
            }
        ),
    tableExpandTableColumn = Table.ExpandTableColumn(tableGroup, "temp", tableColumnNames, tableColumnNames)
in
    tableExpandTableColumn
Изменено: te1n - 19.07.2023 17:41:37
PQ: Оптимизация кода
 
нужны исходные файлы.
что есть, и что хотите получить в итоге
Изменено: te1n - 16.07.2023 17:20:17
PQ: Обращение в запросе к другому запросу
 
Код
lst = List.Buffer(искомое[Столбец2]),
found = Table.AddColumn(full_descr, "позиция", (x) => List.Select(lst, (w) => Text.Contains(x[description], w)){0}?)
Формирование структуры длинной таблицы, Создание таблицы с ежедневным импортом артикулов из базы
 
вариант
PQ. SQL по списку из запроса
 
сомнительно 190к запихнуть в запрос, но
Код
let
    listValue = { "test", "test2", "test3" },
    textCombine = "'" & Text.Combine( listValue, "', '" ) & "'"
in
    textCombine
Написать функцию в power query, Необходимо переписать формулу Excel под язык power query
 
что-то такое
PQ преобразование столбца (замена значений)
 
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],

    tableTransformRows =
        Table.TransformRows(
            Source,
            ( x ) =>
                Record.TransformFields(
                    x,
                    {
                        "Column2",
                        ( y ) =>
                            if y = null then x[ Column1 ]
                            else if x[ Column1 ] = "Текст4" then Text.Combine( { x[ Column1 ], y }, "||" )
                            else y
                    }
                )
        ),
    tableFromRecords = Table.FromRecords( tableTransformRows )
in
    tableFromRecords
или
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],

    tableToRecords = Table.ToRecords( Source ),
    listTransform =
        List.Transform(
            tableToRecords,
            ( x ) =>
                Record.TransformFields(
                    x,
                    {
                        "Column2",
                        ( y ) => 
                            if y = null then x[ Column1 ]
                            else if x[ Column1 ] = "Текст4" then Text.Combine( { x[ Column1 ], y }, "||" )
                            else y
                    }
                )
        ),
    tableFromRecords = Table.FromRecords( listTransform )
in
    tableFromRecords
ну и нужно тестировать, какой объем таблицы ? возможно проще будет в некоторых ситуациях: 1 создать новый столбец, 2 удалить старый, 3 переименовать новый, 4 отсортировать столбцы как были изначально
Изменено: te1n - 13.07.2023 13:25:46
Как получить текст с сайта?, VBA
 
не знаю, с какой периодичностью нужно будет cookie менять, ~600 строк беспроблемно выгрузил на одних cookie
Изменено: te1n - 13.07.2023 09:17:43
Объединение в таблицу данимическую транспонированную таблицу, Объединение в таблицу данимическую транспонированную таблицу
 
последний шаг в своде заменить на
Код
tableColumnNames = List.Skip( Table.ColumnNames( ЦеныТО ) ),
#"Развернутый элемент ЦеныТО" = Table.ExpandTableColumn(#"Объединенные запросы", "ЦеныТО", tableColumnNames, tableColumnNames)

Экспорт из json в эксель
 
в лоб
добавить в конце кода
Код
PrevStep = #"Expanded {0}2", // !!! Вставить название предыдущего шага !!!
    columnsExpandName = "Column1.properties.CompanyMetaData.Categories", // расширить столбец

    tableTransformColumns =
        Table.TransformColumns(
            PrevStep,
            {
                columnsExpandName,
                ( x ) => [
                    NameCat =
                        List.Transform(
                            x,
                            ( y ) => [
                                recordToList = Record.ToList( y ),
                                listCount = List.Count( recordToList ),
                                name = { if listCount > 1 then recordToList{ 1 } else recordToList{ 0 } }
                            ][ name ]
                        ),
                    listPositions = List.Positions( NameCat ),
                    NewNameColumns =
                        List.Transform(
                            listPositions,
                            ( y ) => columnsExpandName & Text.From( y ) 
                        ),
                    tableFromColumns = Table.FromColumns( NameCat, NewNameColumns )
                ][ tableFromColumns ]
            }
        ),
    
    expandTableColumnsName = [
        maxColumns = [
            tableRenameColumns = Table.RenameColumns( PrevStep, { columnsExpandName, "1" } )[ 1 ],
            listTransform = List.Transform( tableRenameColumns, List.Count ),
            listMax = List.Max( listTransform )
        ][ listMax ],
        listPositions = { "0" .. Text.From( maxColumns ) },
        listTransform = List.Transform( listPositions, ( x ) => columnsExpandName & x )
    ][ listTransform ],

    tableExpandTableColumn = Table.ExpandTableColumn( tableTransformColumns, columnsExpandName, expandTableColumnsName, expandTableColumnsName )
PQ. Обработка данных с объединенными ячейками
 
после изменения сохранить файл -> Обновить
PQ: Прошу помощи с синтаксисом "М"
 
Код
"{""code"";""" & Код & """}"
Страницы: 1 2 3 След.
Наверх