Доброго времени суток. Ломаю голову над простой формулой, вроде бы - но не могу найти решение.
Суть: Есть список (лист2) который имеет Наименование компаний (A:A)+ цифру(B:B) + дата(C:C)
Нужно на другом листе (лист 1) сделать одну формулу. Задача формулы: 1. Взять наименование с ячейки (Лист 1 - A1) 2. Найти это наименование по фиксированным датам ОТ и ДО (Лист 1 - От C1 ПО C2) 3. суммировать цифры (Лист 2 B:B)
И она должна автоматически смещаться на следующую ячейку, чтобы автоматически брать информацию эту же повторно, но на строку ниже. Выходит наименование меняется на листе 1.
Пробовал через =ARRAYFORMULA и СМЕЩ и СЧЕТЗ и СУММЕСЛИМН
Можно даже поиск по дате опустить - я по дате могу сделать. Меня именно вопрос мучает со СМЕЩЕНИЕМ.
Заранее спасибо Вам большое. Надеюсь вопрос не слишком сложный.
Спасибо за скорый ответ. Но Ваш вариант суммирует по одному наименованию, а не переходит автоматически на другую - дабы совершить расчет по другому наименованию.
Именно протягивание в низ мне не нужно. Так как система данной таблицы - автоматизированная будет. Выходит наименования компаний будут меняться, собственно и количество. Хотелось чтобы одна формула делала расчет по всем компаниям, до нужной строки.
Если вдруг я протяну 10 строк, а компаний будет 11 - то 11 компания не просчитается. Нужно чтобы 1 формула, через формулу смещения (я так думаю) опускалась автоматически до доступного количества компаний в списке.
zpxoPW, если вы даже будете использовать функцию смещение ВАМ все равно придется протянуть формулу так как она сама из неоткуда не появится...или раз протянуть до конца листа...
Скрытый текст
Sub вставить_формулу() lLastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 3 To lLastRow If Cells(i, 1) <> "" Then Cells(i, 2) = "=SUMIFS(Лист2!C2,Лист2!C1,Лист1!RC1,Лист2!C3,"">=""&Лист1!R1C3,Лист2!C3,""<=""&Лист1!R2C3)" End If Next End Sub
zpxoPW, макрос вам выше предложил... его можно на изменение данных повесить на листе в указанном диапазоне. в модуль листа
Скрытый текст
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range: Set rng = [A1:A1000] 'диапазон Вашей таблицы If Not Intersect(rng, Target) Is Nothing Then lLastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 3 To lLastRow If Cells(i, 1) <> "" Then Cells(i, 2) = "=SUMIFS(Лист2!C2,Лист2!C1,Лист1!RC1,Лист2!C3,"">=""&Лист1!R1C3,Лист2!C3,""<=""&Лист1!R2C3)" End If Next End If End Sub