Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Записи участника (krosav4ig) - Мир MS Excel

Результаты поиска
krosav4ig Дата: Вторник, 22.11.2016, 01:14 | Сообщение № 1301 | Тема: Вывод в таблице в зависимости от значений
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
До кучи
SQL запрос с параметрами (через MSQuery)
К сообщению приложен файл: 5137851-2.xlsx (36.4 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 22.11.2016, 01:15
 
Ответить
СообщениеДо кучи
SQL запрос с параметрами (через MSQuery)

Автор - krosav4ig
Дата добавления - 22.11.2016 в 01:14
krosav4ig Дата: Вторник, 22.11.2016, 02:59 | Сообщение № 1302 | Тема: Как определить высоту вставленной картинки
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Танцы с бубном заказывали? :D
[vba]
Код
Sub dd()
    Dim cell(3) As Range, sel(1) As Object, sh As Worksheet, shts As Sheets, I, r As Range, l, t
    Application.EnableEvents = 0
    With ThisWorkbook.Windows(1)
        Set shts = .SelectedSheets: Set sh = ActiveSheet: Set cell(0) = .VisibleRange(1, 1)
        Set sel(0) = Selection: Set cell(1) = ActiveCell
        Set r = [Лист2!A4]: r.Parent.Select
        Set cell(2) = .VisibleRange(1, 1): Set cell(3) = ActiveCell
        Set sel(1) = Selection
        Application.Goto r, 1
        For I = 1 To .Panes.Count
            If Not Intersect(r, .Panes(I).VisibleRange) Is Nothing Then
                With .Panes(I)
                    Dim pic
                    l = .PointsToScreenPixelsX(r.Left) + 1
                    t = .PointsToScreenPixelsY(r.Top) + 1
                    AppActivate (Application.Caption)
                    DoEvents
                    Set pic = ActiveWindow.RangeFromPoint(l, t)
                    Debug.Print pic.Name
                    Stop
                End With
            End If
        Next
        Application.Goto cell(2): sel(1).Select: cell(3).Activate
        shts.Select: sh.Activate: Application.Goto cell(0), 1: sel(0).Select: cell(1).Activate
        Erase cell, sel: Set sh = Nothing: Set shts = Nothing: Set r = Nothing
    End With
    Application.EnableEvents = 1
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 22.11.2016, 03:08
 
Ответить
СообщениеТанцы с бубном заказывали? :D
[vba]
Код
Sub dd()
    Dim cell(3) As Range, sel(1) As Object, sh As Worksheet, shts As Sheets, I, r As Range, l, t
    Application.EnableEvents = 0
    With ThisWorkbook.Windows(1)
        Set shts = .SelectedSheets: Set sh = ActiveSheet: Set cell(0) = .VisibleRange(1, 1)
        Set sel(0) = Selection: Set cell(1) = ActiveCell
        Set r = [Лист2!A4]: r.Parent.Select
        Set cell(2) = .VisibleRange(1, 1): Set cell(3) = ActiveCell
        Set sel(1) = Selection
        Application.Goto r, 1
        For I = 1 To .Panes.Count
            If Not Intersect(r, .Panes(I).VisibleRange) Is Nothing Then
                With .Panes(I)
                    Dim pic
                    l = .PointsToScreenPixelsX(r.Left) + 1
                    t = .PointsToScreenPixelsY(r.Top) + 1
                    AppActivate (Application.Caption)
                    DoEvents
                    Set pic = ActiveWindow.RangeFromPoint(l, t)
                    Debug.Print pic.Name
                    Stop
                End With
            End If
        Next
        Application.Goto cell(2): sel(1).Select: cell(3).Activate
        shts.Select: sh.Activate: Application.Goto cell(0), 1: sel(0).Select: cell(1).Activate
        Erase cell, sel: Set sh = Nothing: Set shts = Nothing: Set r = Nothing
    End With
    Application.EnableEvents = 1
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 22.11.2016 в 02:59
krosav4ig Дата: Вторник, 22.11.2016, 15:27 | Сообщение № 1303 | Тема: Формат ячейки "Произвольный текст, потом условие"
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как вариант
Код
=ВПР(АГРЕГАТ(14;6;--ПСТР(C3;ДЛСТР(C3)-СТРОКА($1:$99);4);1);$S$2:$T$21;2)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениекак вариант
Код
=ВПР(АГРЕГАТ(14;6;--ПСТР(C3;ДЛСТР(C3)-СТРОКА($1:$99);4);1);$S$2:$T$21;2)

Автор - krosav4ig
Дата добавления - 22.11.2016 в 15:27
krosav4ig Дата: Среда, 23.11.2016, 00:32 | Сообщение № 1304 | Тема: как изменить макрос для переноса значения а не формулы
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
данные почему-то копируются со 2й строки
наверно, потому, чтопробуйте так[vba]
Код
With wb.Worksheets(1)
        With .Range("a" & .Rows.Count).End(xlUp)
            Set cell = IIf(IsEmpty(.Value), .Cells, .Offset(1))
        End With
    End With
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
данные почему-то копируются со 2й строки
наверно, потому, чтопробуйте так[vba]
Код
With wb.Worksheets(1)
        With .Range("a" & .Rows.Count).End(xlUp)
            Set cell = IIf(IsEmpty(.Value), .Cells, .Offset(1))
        End With
    End With
[/vba]

Автор - krosav4ig
Дата добавления - 23.11.2016 в 00:32
krosav4ig Дата: Четверг, 24.11.2016, 16:45 | Сообщение № 1305 | Тема: Диаграмма кол-ва сотрудников. Красивая, наглядная, необычная
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Добрый день
нужно что-нибудь эдакое, выпендрежное
сразу вспомнилось E90E50 charts, вдруг чего-нить подойдет.


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеДобрый день
нужно что-нибудь эдакое, выпендрежное
сразу вспомнилось E90E50 charts, вдруг чего-нить подойдет.

Автор - krosav4ig
Дата добавления - 24.11.2016 в 16:45
krosav4ig Дата: Пятница, 25.11.2016, 16:56 | Сообщение № 1306 | Тема: Разделение строки на части (не более N-символов)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще вариант
К сообщению приложен файл: 9652196.xlsx (11.4 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениееще вариант

Автор - krosav4ig
Дата добавления - 25.11.2016 в 16:56
krosav4ig Дата: Суббота, 26.11.2016, 01:29 | Сообщение № 1307 | Тема: перенос строчек из одной вкладки в другую
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
или так[vba]
Код
Sub d()
    Dim r As Range
    With [index(2!A:A,rows(A:A))].End(xlUp)
        Set r = IIf(.Row > 4, .Offset(1), [2!A4])
    End With
    [1!A:A].Replace "s", "=zz1", 1
    On Error Resume Next
    With [1!ZZ1].Dependents
        .Value = "s"
        .EntireRow.Copy r
        .EntireRow.Delete
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 26.11.2016, 01:31
 
Ответить
Сообщениеили так[vba]
Код
Sub d()
    Dim r As Range
    With [index(2!A:A,rows(A:A))].End(xlUp)
        Set r = IIf(.Row > 4, .Offset(1), [2!A4])
    End With
    [1!A:A].Replace "s", "=zz1", 1
    On Error Resume Next
    With [1!ZZ1].Dependents
        .Value = "s"
        .EntireRow.Copy r
        .EntireRow.Delete
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 26.11.2016 в 01:29
krosav4ig Дата: Суббота, 26.11.2016, 04:49 | Сообщение № 1308 | Тема: Удалние символов справа до первой запятой
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
Можно как-то так
Код
=ЛЕВБ(B3;ДЛСТР(B3)-ДЛСТР(СЖПРОБЕЛЫ(0&ПРАВБ(ПОДСТАВИТЬ(B3;",";ПОВТОР(" ";999));999))))
или
Код
=ЛЕВБ(B3;ПРОСМОТР(;-1/(ПСТР(B3;СТРОКА(1:99);1)=",");СТРОКА(1:99))-1)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 26.11.2016, 04:52
 
Ответить
СообщениеЗдравствуйте
Можно как-то так
Код
=ЛЕВБ(B3;ДЛСТР(B3)-ДЛСТР(СЖПРОБЕЛЫ(0&ПРАВБ(ПОДСТАВИТЬ(B3;",";ПОВТОР(" ";999));999))))
или
Код
=ЛЕВБ(B3;ПРОСМОТР(;-1/(ПСТР(B3;СТРОКА(1:99);1)=",");СТРОКА(1:99))-1)

Автор - krosav4ig
Дата добавления - 26.11.2016 в 04:49
krosav4ig Дата: Воскресенье, 27.11.2016, 14:18 | Сообщение № 1309 | Тема: сводная таблица по таблице-шахматке, подсчет итогов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Дополнение к материалу по ссылке
Делаем из диапазона умную таблицу, при добавлении диапазонов в консолидированную сводную в мастере сводных и диаграмм пишем не адрес диапазона, а ссылку на таблицу в формате ИмяТаблицы[#Все] и отпадает необходимость следить за изменением размеров исходных диапазонов
изменить/добавить диапазоны в консолидированной сводной можно выделив любой элемент в сводной и нажав иконку мастера сводных и диаграмм, затем тык по кнопке Назад
К сообщению приложен файл: 2558284.xls (33.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеДополнение к материалу по ссылке
Делаем из диапазона умную таблицу, при добавлении диапазонов в консолидированную сводную в мастере сводных и диаграмм пишем не адрес диапазона, а ссылку на таблицу в формате ИмяТаблицы[#Все] и отпадает необходимость следить за изменением размеров исходных диапазонов
изменить/добавить диапазоны в консолидированной сводной можно выделив любой элемент в сводной и нажав иконку мастера сводных и диаграмм, затем тык по кнопке Назад

Автор - krosav4ig
Дата добавления - 27.11.2016 в 14:18
krosav4ig Дата: Воскресенье, 27.11.2016, 14:52 | Сообщение № 1310 | Тема: Вставить нужную строку из таблицы в зависимости от значения
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Добрый день
Так нужно?
Код
=ПРОСМОТР(2;МУМНОЖ(Ч(-ТЕКСТ(ПСТР(L$2;2;99)-ПСТР($B$3:$F$6;2;99);"0;999;0")=МАКС(-ТЕКСТ(ПСТР(L$2;2;99)-ПСТР($B$3:$F$6;2;99);"0;999;0")));ТРАНСП(СТОЛБЕЦ($B$3:$F$6)))^0;ИНДЕКС($B$3:$F$6;;СТРОКА(L1)))
К сообщению приложен файл: 7655389.xlsx (12.2 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеДобрый день
Так нужно?
Код
=ПРОСМОТР(2;МУМНОЖ(Ч(-ТЕКСТ(ПСТР(L$2;2;99)-ПСТР($B$3:$F$6;2;99);"0;999;0")=МАКС(-ТЕКСТ(ПСТР(L$2;2;99)-ПСТР($B$3:$F$6;2;99);"0;999;0")));ТРАНСП(СТОЛБЕЦ($B$3:$F$6)))^0;ИНДЕКС($B$3:$F$6;;СТРОКА(L1)))

Автор - krosav4ig
Дата добавления - 27.11.2016 в 14:52
krosav4ig Дата: Вторник, 29.11.2016, 04:59 | Сообщение № 1311 | Тема: макрос или формула для нестандартной транспонации
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
можно через надстройку Power Query
К сообщению приложен файл: 7646557-1.xlsx (21.1 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте
можно через надстройку Power Query

Автор - krosav4ig
Дата добавления - 29.11.2016 в 04:59
krosav4ig Дата: Вторник, 29.11.2016, 23:24 | Сообщение № 1312 | Тема: Как получить переменную из временной формы?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
Чего-то меня посетила не совсем адекватная мысля...
Может стоит подумать в эту сторону


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 29.11.2016, 23:28
 
Ответить
СообщениеЗдравствуйте.
Чего-то меня посетила не совсем адекватная мысля...
Может стоит подумать в эту сторону

Автор - krosav4ig
Дата добавления - 29.11.2016 в 23:24
krosav4ig Дата: Среда, 30.11.2016, 00:48 | Сообщение № 1313 | Тема: рецептура-- формулой
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
в рецептурах есть еще рецептура.

я правильно пнял, что в 'Выпечка Расчёт'!H7 должно получиться [vba]
Код
0,341606
[/vba] по формуле
Код
=(Выпечка!D53+Выпечка!D59*Выпечка!D200)*'Выпечка Расчёт'!H3
?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
в рецептурах есть еще рецептура.

я правильно пнял, что в 'Выпечка Расчёт'!H7 должно получиться [vba]
Код
0,341606
[/vba] по формуле
Код
=(Выпечка!D53+Выпечка!D59*Выпечка!D200)*'Выпечка Расчёт'!H3
?

Автор - krosav4ig
Дата добавления - 30.11.2016 в 00:48
krosav4ig Дата: Среда, 30.11.2016, 04:37 | Сообщение № 1314 | Тема: Подсчёт данных последних 10 ячеек в обновляемом столбце
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
как-то так, например
Код
=СЧЁТЕСЛИ(СМЕЩ(ИНДЕКС(A:A;ПОИСКПОЗ(9^9;A:A));;;-10);0)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте
как-то так, например
Код
=СЧЁТЕСЛИ(СМЕЩ(ИНДЕКС(A:A;ПОИСКПОЗ(9^9;A:A));;;-10);0)

Автор - krosav4ig
Дата добавления - 30.11.2016 в 04:37
krosav4ig Дата: Среда, 30.11.2016, 13:40 | Сообщение № 1315 | Тема: Посчитать кол-во указанной даты в столбце с датами и времене
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
Например, вот так (формула массива)
Код
=СЧЁТ(1/(B2=ОТБР(A2:A7)))


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 30.11.2016, 13:51
 
Ответить
СообщениеЗдравствуйте
Например, вот так (формула массива)
Код
=СЧЁТ(1/(B2=ОТБР(A2:A7)))

Автор - krosav4ig
Дата добавления - 30.11.2016 в 13:40
krosav4ig Дата: Среда, 30.11.2016, 14:28 | Сообщение № 1316 | Тема: Как получить переменную из временной формы?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
из пушки по воробьям
Ну дык поэтому и
не совсем адекватная мысля

:)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 30.11.2016, 17:00
 
Ответить
Сообщение
из пушки по воробьям
Ну дык поэтому и
не совсем адекватная мысля

:)

Автор - krosav4ig
Дата добавления - 30.11.2016 в 14:28
krosav4ig Дата: Среда, 30.11.2016, 17:04 | Сообщение № 1317 | Тема: Работа с переменными окружения Windows.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как удалять
еси мне память не изменяет, то [vba]
Код
SetEnvironmentVariable "test", Empty 'удаление переменной
[/vba]по крайней мере в Басике было так [vba]
Код
Success := SetEnvironmentVariable(PChar(VarName), nil)
[/vba]
а быстрее, имхо, потому, что создаются переменные процесса, а не системные, как было с WScript.Shell


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 30.11.2016, 17:09
 
Ответить
Сообщение
как удалять
еси мне память не изменяет, то [vba]
Код
SetEnvironmentVariable "test", Empty 'удаление переменной
[/vba]по крайней мере в Басике было так [vba]
Код
Success := SetEnvironmentVariable(PChar(VarName), nil)
[/vba]
а быстрее, имхо, потому, что создаются переменные процесса, а не системные, как было с WScript.Shell

Автор - krosav4ig
Дата добавления - 30.11.2016 в 17:04
krosav4ig Дата: Среда, 30.11.2016, 17:24 | Сообщение № 1318 | Тема: PowerQuery- Частичная группировка и транспонирование таблицы
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Имхо, Table.Pivot должен помочь. Позже вечером отпишусь, щас негде пощупать.
вот вариант "на коленке", может не работать
[vba]
Код
Table.Pivot(Таблица, List.Distinct([Custom.Value.results.specGroups.specGuruModelcard.name]),  "Custom.Value.results.specGroups.specGuruModelcard.name",  "Custom.Value.results.specGroups.specGuruModelcard.value",  each if List.Count(_)>1 then _ else _{0})
[/vba]
а потом разворачивать столбцы, где получился List


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеИмхо, Table.Pivot должен помочь. Позже вечером отпишусь, щас негде пощупать.
вот вариант "на коленке", может не работать
[vba]
Код
Table.Pivot(Таблица, List.Distinct([Custom.Value.results.specGroups.specGuruModelcard.name]),  "Custom.Value.results.specGroups.specGuruModelcard.name",  "Custom.Value.results.specGroups.specGuruModelcard.value",  each if List.Count(_)>1 then _ else _{0})
[/vba]
а потом разворачивать столбцы, где получился List

Автор - krosav4ig
Дата добавления - 30.11.2016 в 17:24
krosav4ig Дата: Четверг, 01.12.2016, 04:28 | Сообщение № 1319 | Тема: PowerQuery- Частичная группировка и транспонирование таблицы
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а у мну вот так получилось :) [vba]
Код

let
    ExpandAll = (TableToExpand as table, optional ColumnNumber as number) as table =>
    let
        ActualColumnNumber = if (ColumnNumber=null) then 0 else ColumnNumber,
        ColumnName = Table.ColumnNames(TableToExpand){ActualColumnNumber},
        ColumnContents = Table.Column(TableToExpand, ColumnName),
        ColumnsToExpand = List.Distinct(List.Combine(List.Transform(ColumnContents, each if _ is table then Table.ColumnNames(_) else {}))),
        NewColumnNames = List.Transform(ColumnsToExpand, each ColumnName & "." & _),
        CanExpandCurrentColumn = List.Count(ColumnsToExpand)>0,
        ExpandedTable = if CanExpandCurrentColumn then Table.ExpandTableColumn(TableToExpand, ColumnName, ColumnsToExpand, NewColumnNames) else TableToExpand,
        NextColumnNumber = if CanExpandCurrentColumn then ActualColumnNumber else ActualColumnNumber+1
    in if NextColumnNumber>(Table.ColumnCount(ExpandedTable)-1) then ExpandedTable else fn{0}(ExpandedTable, NextColumnNumber),
    col = [results={"id", "vendor", "shortName", "titles", "offers", "isNew", "parentId", "specGroups"},vendor={"id", "name"},specGroups="specGuruModelcard",
               name="results.specGroups.specGuruModelcard.name",value="results.specGroups.specGuruModelcard.value"],
    fn = {
        ExpandAll, //callback для рекурсии
        each {[file=[Folder Path]&[Name],results=Table.FromRecords(Json.Document([Content])[productModsSearch][search][results]),
            total=Json.Document([Content])[productModsSearch][search][total]]}{0},
        {"results",each Table.TransformColumns(Table.SelectColumns(_,col[results]),{{"vendor",each Table.FromRecords({Record.SelectFields(_,col[vendor])})},
            {"specGroups",each Table.TransformColumns(Table.SelectColumns(Table.FromRecords(_),col[specGroups]),{"specGuruModelcard",Table.FromRecords})},
            {"offers",each Table.FromRecords({_})},{"titles",each Table.FromRecords({_})}})}
    },
    step1 = ExpandAll(Table.TransformColumns(Table.FromRecords(Table.TransformRows(Folder.Files(GetValue("pathName")),fn{1})),fn{2})),
    step2 = Table.ReplaceValue(step1,"",null,Replacer.ReplaceValue,{col[value]}),
    step3 = Table.Pivot(step2, List.Distinct(Table.Column(step2,col[name])),col[name],col[value],each Text.Combine(_,"|"))
in
    step3
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 01.12.2016, 04:31
 
Ответить
Сообщениеа у мну вот так получилось :) [vba]
Код

let
    ExpandAll = (TableToExpand as table, optional ColumnNumber as number) as table =>
    let
        ActualColumnNumber = if (ColumnNumber=null) then 0 else ColumnNumber,
        ColumnName = Table.ColumnNames(TableToExpand){ActualColumnNumber},
        ColumnContents = Table.Column(TableToExpand, ColumnName),
        ColumnsToExpand = List.Distinct(List.Combine(List.Transform(ColumnContents, each if _ is table then Table.ColumnNames(_) else {}))),
        NewColumnNames = List.Transform(ColumnsToExpand, each ColumnName & "." & _),
        CanExpandCurrentColumn = List.Count(ColumnsToExpand)>0,
        ExpandedTable = if CanExpandCurrentColumn then Table.ExpandTableColumn(TableToExpand, ColumnName, ColumnsToExpand, NewColumnNames) else TableToExpand,
        NextColumnNumber = if CanExpandCurrentColumn then ActualColumnNumber else ActualColumnNumber+1
    in if NextColumnNumber>(Table.ColumnCount(ExpandedTable)-1) then ExpandedTable else fn{0}(ExpandedTable, NextColumnNumber),
    col = [results={"id", "vendor", "shortName", "titles", "offers", "isNew", "parentId", "specGroups"},vendor={"id", "name"},specGroups="specGuruModelcard",
               name="results.specGroups.specGuruModelcard.name",value="results.specGroups.specGuruModelcard.value"],
    fn = {
        ExpandAll, //callback для рекурсии
        each {[file=[Folder Path]&[Name],results=Table.FromRecords(Json.Document([Content])[productModsSearch][search][results]),
            total=Json.Document([Content])[productModsSearch][search][total]]}{0},
        {"results",each Table.TransformColumns(Table.SelectColumns(_,col[results]),{{"vendor",each Table.FromRecords({Record.SelectFields(_,col[vendor])})},
            {"specGroups",each Table.TransformColumns(Table.SelectColumns(Table.FromRecords(_),col[specGroups]),{"specGuruModelcard",Table.FromRecords})},
            {"offers",each Table.FromRecords({_})},{"titles",each Table.FromRecords({_})}})}
    },
    step1 = ExpandAll(Table.TransformColumns(Table.FromRecords(Table.TransformRows(Folder.Files(GetValue("pathName")),fn{1})),fn{2})),
    step2 = Table.ReplaceValue(step1,"",null,Replacer.ReplaceValue,{col[value]}),
    step3 = Table.Pivot(step2, List.Distinct(Table.Column(step2,col[name])),col[name],col[value],each Text.Combine(_,"|"))
in
    step3
[/vba]

Автор - krosav4ig
Дата добавления - 01.12.2016 в 04:28
krosav4ig Дата: Четверг, 01.12.2016, 11:57 | Сообщение № 1320 | Тема: PowerQuery- Частичная группировка и транспонирование таблицы
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
всегда пожалуйста :)
нужно было функцию создать

странно, у меня в обычном запросе нормально отрабатывает
создаю пустой запрос (Из других источников>Пустой запрос), пихаю это все в расширенный редактор и все отрабатывает без ошибок


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениевсегда пожалуйста :)
нужно было функцию создать

странно, у меня в обычном запросе нормально отрабатывает
создаю пустой запрос (Из других источников>Пустой запрос), пихаю это все в расширенный редактор и все отрабатывает без ошибок

Автор - krosav4ig
Дата добавления - 01.12.2016 в 11:57
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!