Добрый день! Подскажите пожалуйста, нужно составить таблицу, есть первоначальные данные я их скопировала с сайта (цифры), эти цифры нужно разместить по таблице чтоб из колонки где основные данные они переносились в общую таблицу. Например: если в 1 колонке есть 1 то она должна встать в таблицу в колонку под "1" и так далее. Пробовала функцию ЕСЛИ, не видит, текст по столбцам тоже не помогает, пробовала убирать пробелы лишние все равно не получается(( может кто сможет подсказать? пример во вложении. Спасибо
Добрый день! Подскажите пожалуйста, нужно составить таблицу, есть первоначальные данные я их скопировала с сайта (цифры), эти цифры нужно разместить по таблице чтоб из колонки где основные данные они переносились в общую таблицу. Например: если в 1 колонке есть 1 то она должна встать в таблицу в колонку под "1" и так далее. Пробовала функцию ЕСЛИ, не видит, текст по столбцам тоже не помогает, пробовала убирать пробелы лишние все равно не получается(( может кто сможет подсказать? пример во вложении. Спасибо928-922
Сообщение отредактировал 928-922 - Понедельник, 18.02.2019, 17:37
Dim src(), res(), collHeader As New Collection Dim var, var2, lr As Long, lc As Long, c As Long Dim i As Long, ii As Long, j As Long
lr = Cells(Rows.Count, "B").End(xlUp).row lc = Cells(1, Columns.Count).End(xlToLeft).Column src() = Range("B3:B" & lr).Value ReDim res(1 To UBound(src), 1 To lc - 2)
For j = 3 To lc collHeader.Add Item:=j - 2, key:=CStr(Cells(1, j).Value) Next j
On Error Resume Next For i = 1 To UBound(src) var = src(i, 1) var = Replace(var, Chr(160), " ") var = Split(var, " ") For ii = 0 To UBound(var) var2 = CDbl(var(ii)) c = 0 c = collHeader(CStr(var2)) If c <> 0 Then res(i, c) = var2 End If Next ii Next i On Error GoTo 0
Dim src(), res(), collHeader As New Collection Dim var, var2, lr As Long, lc As Long, c As Long Dim i As Long, ii As Long, j As Long
lr = Cells(Rows.Count, "B").End(xlUp).row lc = Cells(1, Columns.Count).End(xlToLeft).Column src() = Range("B3:B" & lr).Value ReDim res(1 To UBound(src), 1 To lc - 2)
For j = 3 To lc collHeader.Add Item:=j - 2, key:=CStr(Cells(1, j).Value) Next j
On Error Resume Next For i = 1 To UBound(src) var = src(i, 1) var = Replace(var, Chr(160), " ") var = Split(var, " ") For ii = 0 To UBound(var) var2 = CDbl(var(ii)) c = 0 c = collHeader(CStr(var2)) If c <> 0 Then res(i, c) = var2 End If Next ii Next i On Error GoTo 0
Pelena, попробовала, получается все если вводить данные заново вручную, при копировании почему о не видит, вот как в Вашем примере в последних двух строчках он почему то не хочет цеплять из них формулу и прописывать по таблице как строчки выше
Pelena, попробовала, получается все если вводить данные заново вручную, при копировании почему о не видит, вот как в Вашем примере в последних двух строчках он почему то не хочет цеплять из них формулу и прописывать по таблице как строчки выше928-922
krosav4ig, Андрей, а зачем шаг Пользовательская1? Не совсем я его понял. Можно же сразу Список развернуть. Или я чего-то не доглядел? [vba]
Код
let Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Добавлен пользовательский объект" = Table.AddColumn(Источник, "Список", each List.Transform(List.Select(Text.SplitAny(Text.Trim([Данные])," "),each _<>""),Number.From)), #"Развернутый элемент Список" = Table.ExpandListColumn(#"Добавлен пользовательский объект", "Список") in #"Развернутый элемент Список"
[/vba]
krosav4ig, Андрей, а зачем шаг Пользовательская1? Не совсем я его понял. Можно же сразу Список развернуть. Или я чего-то не доглядел? [vba]
Код
let Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Добавлен пользовательский объект" = Table.AddColumn(Источник, "Список", each List.Transform(List.Select(Text.SplitAny(Text.Trim([Данные])," "),each _<>""),Number.From)), #"Развернутый элемент Список" = Table.ExpandListColumn(#"Добавлен пользовательский объект", "Список") in #"Развернутый элемент Список"