Страницы: 1
RSS
Дублирование на другой лист каждой третьей строки
 
Здравствуйте, помогите решить вопрос.

как с первой таблицы (лист1) автоматически дублировать во вторую (лист2) только каждую третью строку (4, 7, 10 и т.д.). Строки постоянно добавляются и необходимо чтобы таблица 2 создавалась автоматически. В таблицах также есть другие столбцы, сократила для удобства.

Заранее благодарна всем ответившим.
 
irra laz, ДД. можно макросом можно формулой...
вариант формулой.
Код
=ЕСЛИ(ИНДЕКС(Аркуш1!A:A;СТРОКА($A$1)+3*СЧЁТЗ(A$1:A1);1)="";"";ИНДЕКС(Аркуш1!A:A;СТРОКА($A$1)+3*СЧЁТЗ(A$1:A1);1))
Не бойтесь совершенства. Вам его не достичь.
 
М.б. всё гораздо проще?  
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
До кучи
=ВПР($A2;Аркуш1!$A$1:$E$7;СТОЛБЕЦ();)
Изменено: Максим В. - 30.06.2020 13:31:37
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Вариант через Power Qwery
Код
let
    Sourse = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Added_Index = Table.AddIndexColumn(Sourse, "Индекс", 0, 1),
    Calculated_Modulo = Table.TransformColumns(Added_Index, {{"Индекс", each Number.Mod(_, 3), type number}}),
    SelectRows = Table.SelectRows(Calculated_Modulo, each ([Индекс] = 2)),
    RemoveColumns = Table.RemoveColumns(SelectRows,{"Индекс"}),
    Types = Table.TransformColumnTypes(RemoveColumns,{{"Дата", type date}, {"Масова частка вологи, %", Percentage.Type}, {"смена", type text}, {"продукт", type text}, {"№  ", Int64.Type}})
in
    Types
 
 Даже не ожидала, что будет столько вариантов! Буду пробовать и подбирать наиболее удобный.
Огромная благодарность всем за помощь!
Изменено: irra laz - 05.07.2020 05:13:10
 
До кучи ещё одна формула
Код
=INDEX(Аркуш1!B$2:B$200;TRUNC((ROWS($2:2)-1)*3)+3)
 
Еще вариант в Power Query
Код
= Table.FromRecords(List.Transform(Table.Split(Sourse,3), each _{2}))
 
irra laz, еще вариант в модуль листа Аркуш2
Код
Private Sub Worksheet_Activate()
Dim arr()
Dim arr2()
Dim i As Long, j As Long
Dim lr As Long
Dim rng As Range
lr = Worksheets("Аркуш1").Cells(Rows.Count, 5).End(xlUp).Row
Set rng = Worksheets("Аркуш1").Range("A2:E" & lr)
arr = rng
ReDim arr2((lr - 1) / 3, 4)
n = 0
For i = 3 To UBound(arr) Step 3
    For j = 0 To 4
        arr2(n, j) = arr(i, j + 1)
    Next j
n = n + 1
Next i
Range("A2:E" & UBound(arr2) + 1).Value = arr2()
End Sub

Изменено: Mershik - 05.07.2020 22:29:55
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
jakim написал:=INDEX(Аркуш1!B$2:B$200;TRUNC((ROWS($2:2)-1)*3)+3)
Использовала этот вариант. Пробовала самостоятельно сделать похожий - не получается, видимо что-то еще не понимаю((

Подскажите, какая будет формула для дублирования на лист2 с листа1 первой строки два раза, потом второй строки два раза. В результате на листе2 чтобы по два раза были строки 1,2,4,5,7,8, 10,11 и т.д. (все кроме каждой третьей)

Спасибо зарание.
 
Вопрос не по теме
Страницы: 1
Наверх