бы у бабушки кой-чего было, то это была бы не бабушка вовсе[/offtop] в последнем файле у вас в С2 стоит время 29:07:00 - 29 часов 7 минут. Как вы предлагаете Excelю догадываться, что это на самом деле должно быть 00:29:07
бы у бабушки кой-чего было, то это была бы не бабушка вовсе[/offtop] в последнем файле у вас в С2 стоит время 29:07:00 - 29 часов 7 минут. Как вы предлагаете Excelю догадываться, что это на самом деле должно быть 00:29:07krosav4ig
В настройках страницы ставим галочки Различать колонтитулы четных и нечетных страниц и первой страницы в колонтитул нечетной станицы помещаем поле [vba]
Код
{=({page}+1)/2}
[/vba]
или без галочек в настройках страницы в колонтитул помещаем поле [vba]
В настройках страницы ставим галочки Различать колонтитулы четных и нечетных страниц и первой страницы в колонтитул нечетной станицы помещаем поле [vba]
Код
{=({page}+1)/2}
[/vba]
или без галочек в настройках страницы в колонтитул помещаем поле [vba]
let Source = Excel.CurrentWorkbook(){[Name="data"]}[Content], Group = Table.Group(Source, {"Column1", "Column3", "Column4","Column5","Column7"}, {{"Column2", each Text.Combine(List.Transform([Column2],Text.From),","), type text},{"Column6", each List.Sum([Column6]), type number}}) in Table.ReorderColumns(Group,Table.ColumnNames(Source))
[/vba] данные для запроса берутся из именованного диапазона data, для обновления ПКМ по таблице>Обновить или Данные>Обновить все (Ctrl+Alt+F5)
Вариант в Power Query [vba]
Код
let Source = Excel.CurrentWorkbook(){[Name="data"]}[Content], Group = Table.Group(Source, {"Column1", "Column3", "Column4","Column5","Column7"}, {{"Column2", each Text.Combine(List.Transform([Column2],Text.From),","), type text},{"Column6", each List.Sum([Column6]), type number}}) in Table.ReorderColumns(Group,Table.ColumnNames(Source))
[/vba] данные для запроса берутся из именованного диапазона data, для обновления ПКМ по таблице>Обновить или Данные>Обновить все (Ctrl+Alt+F5)krosav4ig
Sub элемент_таблицы() Dim myRange As Range, myCell As Range, AL As Object, v As Variant, r As Variant, _ myElement As Variant, i As Long, smyRange As Range, ssmyRange As Range Dim LastRow Dim sLastRow Application.ScreenUpdating = False Application.Calculation = xlCalculationManual LastRow = Sheets("Лист2").Cells(Sheets("Лист2").Rows.Count, 1).End(xlUp).Row sLastRow = Sheets("Лист3").Cells(Sheets("Лист3").Rows.Count, 1).End(xlUp).Row Set myRange = Sheets("Лист2").Range("A2:A" & LastRow) Set ssmyRange = Sheets("Лист3").Range("A2:A" & sLastRow) On Error Resume Next
Set AL = CreateObject("system.Collections.Arraylist")
For Each r In Array(myRange, ssmyRange) For Each v In r.Value If Not IsEmpty(v) And Not AL.contains(v) Then AL.Add v Next v, r AL.Sort
On Error GoTo 0 [проба!J2].Resize(, AL.Count) = AL.toarray
Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
[/vba]
Вариант с Arraylist
[vba]
Код
Sub элемент_таблицы() Dim myRange As Range, myCell As Range, AL As Object, v As Variant, r As Variant, _ myElement As Variant, i As Long, smyRange As Range, ssmyRange As Range Dim LastRow Dim sLastRow Application.ScreenUpdating = False Application.Calculation = xlCalculationManual LastRow = Sheets("Лист2").Cells(Sheets("Лист2").Rows.Count, 1).End(xlUp).Row sLastRow = Sheets("Лист3").Cells(Sheets("Лист3").Rows.Count, 1).End(xlUp).Row Set myRange = Sheets("Лист2").Range("A2:A" & LastRow) Set ssmyRange = Sheets("Лист3").Range("A2:A" & sLastRow) On Error Resume Next
Set AL = CreateObject("system.Collections.Arraylist")
For Each r In Array(myRange, ssmyRange) For Each v In r.Value If Not IsEmpty(v) And Not AL.contains(v) Then AL.Add v Next v, r AL.Sort
On Error GoTo 0 [проба!J2].Resize(, AL.Count) = AL.toarray
Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
let fn=(t)=>let Col = Table.ColumnNames(t), GroupBy = List.RemoveMatchingItems(Col,{Col{1},Col{5}}), List = {{Col{1}, each Text.Combine(List.Transform(Table.Column(_,Col{1}),Text.From),",")}, {Col{5}, each List.Sum(Table.Column(_,Col{5}))}} in Table.ReorderColumns(Table.Group(t,GroupBy,List),Col), Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], Source1 = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content], Merge = Table.NestedJoin(fn(Source),{"Столбец1","Столбец4"},fn(Source1),{"Столбец1","Столбец4"},"2",3), Group = Table.Group(Merge, {"2"}, {{"1", each Table.RemoveColumns(_,{"2"}), type table}})[[1],[2]], Transform = Table.FromRecords(Table.TransformRows(Group,(r)=> Record.TransformFields(r,{ {"1",each Table.ReplaceValue(_,null,r[2]{0}[Столбец1],Replacer.ReplaceValue,{"Столбец1"})}, {"2",each Table.ReplaceValue(_,null,r[1]{0}[Столбец1],Replacer.ReplaceValue,{"Столбец1"})} }))), ColN = List.Zip(List.Transform(Table.ColumnNames(Source),each {_,"1."&_,"2."&_})), Result = Table.ExpandTableColumn(Table.ExpandTableColumn(Transform, "1", ColN{0}, ColN{1}),"2", ColN{0}, ColN{2}) in Result
[/vba]
Вариант в Power Query[vba]
Код
let fn=(t)=>let Col = Table.ColumnNames(t), GroupBy = List.RemoveMatchingItems(Col,{Col{1},Col{5}}), List = {{Col{1}, each Text.Combine(List.Transform(Table.Column(_,Col{1}),Text.From),",")}, {Col{5}, each List.Sum(Table.Column(_,Col{5}))}} in Table.ReorderColumns(Table.Group(t,GroupBy,List),Col), Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], Source1 = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content], Merge = Table.NestedJoin(fn(Source),{"Столбец1","Столбец4"},fn(Source1),{"Столбец1","Столбец4"},"2",3), Group = Table.Group(Merge, {"2"}, {{"1", each Table.RemoveColumns(_,{"2"}), type table}})[[1],[2]], Transform = Table.FromRecords(Table.TransformRows(Group,(r)=> Record.TransformFields(r,{ {"1",each Table.ReplaceValue(_,null,r[2]{0}[Столбец1],Replacer.ReplaceValue,{"Столбец1"})}, {"2",each Table.ReplaceValue(_,null,r[1]{0}[Столбец1],Replacer.ReplaceValue,{"Столбец1"})} }))), ColN = List.Zip(List.Transform(Table.ColumnNames(Source),each {_,"1."&_,"2."&_})), Result = Table.ExpandTableColumn(Table.ExpandTableColumn(Transform, "1", ColN{0}, ColN{1}),"2", ColN{0}, ColN{2}) in Result
Sub test() On Error Resume Next ThisWorkbook.VBProject.References.AddFromFile Application.Path & "\MSPPT.OLB" On Error GoTo 0 Dim pp As New PowerPoint.Application With pp.Presentations.Open(Environ("userprofile") & "\Documents\Презентация1.pptx") .ExportAsFixedFormat .Path & "\test.pdf", 2&, 2& .Close End With If pp.Presentations.Count = 0 Then pp.Quit Set pp = Nothing End Sub
[/vba]
у меня получилось только с ранним связыванием
[vba]
Код
Sub test() On Error Resume Next ThisWorkbook.VBProject.References.AddFromFile Application.Path & "\MSPPT.OLB" On Error GoTo 0 Dim pp As New PowerPoint.Application With pp.Presentations.Open(Environ("userprofile") & "\Documents\Презентация1.pptx") .ExportAsFixedFormat .Path & "\test.pdf", 2&, 2& .Close End With If pp.Presentations.Count = 0 Then pp.Quit Set pp = Nothing End Sub
вариант с UDF c автонаполнением списка в диспетчере имен именованная формула список
Код
=DropDownList(Sheet1!$B$42)
в проверке данных Источник
Код
=Список
, будет ругаться на ошибку, жмем ок Сообщение об ошибке можно не отключать [vba]
Код
Function DropDownList(r As Range) As Range
Dim r0 As Range, r1 As Range Static b As Boolean
If b Then: b = False: Exit Function
Application.Volatile False Set r0 = Application.Caller If IsEmpty(r(2)) Then Set r1 = r Else Set r1 = r.Parent.Range(r, r.End(xlDown)) End If Set DropDownList = r1 If r1.Find(r0, , xlValues, xlWhole) Is Nothing And Not IsEmpty(r0) Then If MsgBox("Введеное начение не надено." & vbCr & _ "Добавить его в cписок?", vbQuestion Or vbYesNo) = vbYes Then r1.Offset(r1.Rows.Count)(1, 1) = r0 Else b = True: Exit Function End If End If End Function
[/vba]
вариант с UDF c автонаполнением списка в диспетчере имен именованная формула список
Код
=DropDownList(Sheet1!$B$42)
в проверке данных Источник
Код
=Список
, будет ругаться на ошибку, жмем ок Сообщение об ошибке можно не отключать [vba]
Код
Function DropDownList(r As Range) As Range
Dim r0 As Range, r1 As Range Static b As Boolean
If b Then: b = False: Exit Function
Application.Volatile False Set r0 = Application.Caller If IsEmpty(r(2)) Then Set r1 = r Else Set r1 = r.Parent.Range(r, r.End(xlDown)) End If Set DropDownList = r1 If r1.Find(r0, , xlValues, xlWhole) Is Nothing And Not IsEmpty(r0) Then If MsgBox("Введеное начение не надено." & vbCr & _ "Добавить его в cписок?", vbQuestion Or vbYesNo) = vbYes Then r1.Offset(r1.Rows.Count)(1, 1) = r0 Else b = True: Exit Function End If End If End Function
Sub sdf() Dim v As Variant, ar As Range On Error Resume Next With ActiveSheet.UsedRange With Intersect(.Offset(4 - .Row), .Cells) For Each v In Array(xlCellTypeFormulas, xlCellTypeConstants) For Each ar In .SpecialCells(v, 23).EntireRow.Areas Intersect(ar, .Parent.[B:B]).Value = .Parent.Name Next ar, v End With End With End Sub
[/vba]
Добрый вечер [vba]
Код
Sub sdf() Dim v As Variant, ar As Range On Error Resume Next With ActiveSheet.UsedRange With Intersect(.Offset(4 - .Row), .Cells) For Each v In Array(xlCellTypeFormulas, xlCellTypeConstants) For Each ar In .SpecialCells(v, 23).EntireRow.Areas Intersect(ar, .Parent.[B:B]).Value = .Parent.Name Next ar, v End With End With End Sub
WERDART, у вас на листе ресурс 2 таблица не растянулась на столбец 8 [vba]
Код
let fn=(t)=>let Col = Table.ColumnNames(t), GroupBy = List.RemoveMatchingItems(Col,{Col{1},Col{5}}), List = {{Col{1}, each Text.Combine(List.Transform(Table.Column(_,Col{1}),Text.From),",")}, {Col{5}, each List.Sum(Table.Column(_,Col{5}))}} in Table.ReorderColumns(Table.Group(t,GroupBy,List),Col), Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], Source1 = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content], Merge = Table.NestedJoin(fn(Source),{"Столбец1","Столбец4","Столбец8"},fn(Source1),{"Столбец1","Столбец4","Столбец8"},"2",3), Group = Table.Group(Merge, {"2"}, {{"1", each Table.RemoveColumns(_,{"2"}), type table}})[[1],[2]], Transform = Table.FromRecords(Table.TransformRows(Group,(r)=> Record.TransformFields(r,{ {"1",each Table.ReplaceValue(_,null,r[2]{0}[Столбец1],Replacer.ReplaceValue,{"Столбец1"})}, {"2",each Table.ReplaceValue(_,null,r[1]{0}[Столбец1],Replacer.ReplaceValue,{"Столбец1"})} }))), ColN = List.Zip(List.Transform(Table.ColumnNames(Source),each {_,"1."&_,"2."&_})), Result = Table.ExpandTableColumn(Table.ExpandTableColumn(Transform, "1", ColN{0}, ColN{1}),"2", ColN{0}, ColN{2}) in Result
[/vba]
WERDART, у вас на листе ресурс 2 таблица не растянулась на столбец 8 [vba]
Код
let fn=(t)=>let Col = Table.ColumnNames(t), GroupBy = List.RemoveMatchingItems(Col,{Col{1},Col{5}}), List = {{Col{1}, each Text.Combine(List.Transform(Table.Column(_,Col{1}),Text.From),",")}, {Col{5}, each List.Sum(Table.Column(_,Col{5}))}} in Table.ReorderColumns(Table.Group(t,GroupBy,List),Col), Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], Source1 = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content], Merge = Table.NestedJoin(fn(Source),{"Столбец1","Столбец4","Столбец8"},fn(Source1),{"Столбец1","Столбец4","Столбец8"},"2",3), Group = Table.Group(Merge, {"2"}, {{"1", each Table.RemoveColumns(_,{"2"}), type table}})[[1],[2]], Transform = Table.FromRecords(Table.TransformRows(Group,(r)=> Record.TransformFields(r,{ {"1",each Table.ReplaceValue(_,null,r[2]{0}[Столбец1],Replacer.ReplaceValue,{"Столбец1"})}, {"2",each Table.ReplaceValue(_,null,r[1]{0}[Столбец1],Replacer.ReplaceValue,{"Столбец1"})} }))), ColN = List.Zip(List.Transform(Table.ColumnNames(Source),each {_,"1."&_,"2."&_})), Result = Table.ExpandTableColumn(Table.ExpandTableColumn(Transform, "1", ColN{0}, ColN{1}),"2", ColN{0}, ColN{2}) in Result