Страницы: 1
RSS
Заполнить таблицу из данных другого листа по двум условиям., Заполнить таблицу из данных другого листа по двум условиям.
 

Здравствуйте друзья. Помогите пожалуйста. Нужно извлечь данные из листа "Ввод данных" на "Лист 2" по двум условиям. Первое это номер счет-фактуры а второе это дата. Файл примера прилагаю. Заранее благодарен за помощь.  

 
Вариант.
Вредить легко, помогать трудно.
 
Ещё вариант.
 
Valery777, еще вариант макросом - в модуль Листа2 - Запускается при изменении даты и номера счет-фактуры
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C18", "F18")) Is Nothing Then
Application.ScreenUpdating = False
Dim arr, arr2, i As Long, lr As Long, sh As Worksheet, d As Date, t As String
Set sh = Worksheets("Ввод данных")
d = Range("F18")
t = Range("C18")
lr = sh.Cells(Rows.Count, 1).End(xlUp).Row
arr = sh.Range("A2:H" & lr)
s = Application.WorksheetFunction.CountIfs(sh.Columns(1), t, sh.Columns(2), d)
ReDim arr2(1 To s + 1, 1 To 7): k = 1: x = 0
For i = LBound(arr) To UBound(arr)
    If arr(i, 1) = t And arr(i, 2) = d Then
        arr2(k, 1) = arr(i, 4)
        arr2(k, 4) = arr(i, 5)
        arr2(k, 5) = arr(i, 6)
        arr2(k, 6) = arr(i, 7)
        arr2(k, 7) = arr(i, 8)
        x = x + arr2(k, 7)
        k = k + 1
    End If
Next i
arr2(k, 1) = "Всего на сумму:": arr2(k, 7) = x

    Range("A21:G" & Cells(Rows.Count, 7).End(xlUp).Row + 20).Clear
    Range("A21:G" & UBound(arr2) + 20).Borders.LineStyle = xlContinuous
    For i = 21 To UBound(arr2) + 21
        If Cells(i, 2) = Empty Then
            Range(Cells(i, 1), Cells(i, 3)).MergeCells = True
        End If
    Next i
Range("A21").Resize(UBound(arr2), 7) = arr2
Application.ScreenUpdating = True
End If
End Sub

Изменено: Mershik - 06.07.2021 16:29:15
Не бойтесь совершенства. Вам его не достичь.
 
Valery777, дубль
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=141808&a...
Не бойтесь совершенства. Вам его не достичь.
 
Формула
Код
=IFERROR(INDEX('Ввод данных'!D$2:D$100;AGGREGATE(15;6;ROW($1:$100)/('Ввод данных'!$B$2:$B$100=$D$18)/('Ввод данных'!$A$2:$A$100=$B$18);ROWS($21:21)));"")
В нижней части таблицы уберите объединение ячеек.
 
Спасибо друзья. Вы все дали уйму классных идей!!!
 
Здравствуйте. Помогите, пожалуйста. По аналогии пробовала перенести текст на другие страницы при одном условии.
Когда копирую, то один раз формула сработала и на этом все, в последующих страницах данные не появляются. Там ошибки какие-то, но где не найду. Например, стр.114, ячейка В1 - ввод 114Н, должны появиться ФИО в строке 7 и номер договора в строке 2.
Страницы: 1
Наверх