ComiC, Здравствуйте, если расположение данных на всех листах одинаково, можно макросом.
[vba]
Код
Sub test() Dim wSh As Worksheet, KolVo As Long, cl As Object Application.ScreenUpdating = False On Error Resume Next For Each cl In Sheets("Итого").Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row) For Each wSh In Worksheets If wSh.Name <> "Итого" Then KolVo = KolVo + wSh.[A1].CurrentRegion.Find(What:=cl, LookAt:=xlWhole).Offset(, 1) End If Next cl.Offset(, 1) = KolVo KolVo = 0 Next Application.ScreenUpdating = True End Sub
[/vba]
ComiC, Здравствуйте, если расположение данных на всех листах одинаково, можно макросом.
[vba]
Код
Sub test() Dim wSh As Worksheet, KolVo As Long, cl As Object Application.ScreenUpdating = False On Error Resume Next For Each cl In Sheets("Итого").Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row) For Each wSh In Worksheets If wSh.Name <> "Итого" Then KolVo = KolVo + wSh.[A1].CurrentRegion.Find(What:=cl, LookAt:=xlWhole).Offset(, 1) End If Next cl.Offset(, 1) = KolVo KolVo = 0 Next Application.ScreenUpdating = True End Sub
ComiC, и Вам доброго времени суток. Вариантов решения, наверное, немало. Как бы сделал я в четвертом часу ночи (мск)... - Выделил бы все листы книги (включая лист "Итого") и вставил бы во все листы единый список всех фруктов Например, такой
- Заполнил бы количество по каждому из листов, кроме листа "Итого". Предположим, этим занимаются разные люди, каждый заполняет свой лист, согласно фамилии. Хотелось бы верить, что не вручную - Перешел бы на лист "Итого" и в ячейку B2 формулу
Код
=СУММ('*'!B2)
Формула взята отсюда. В триллионный раз Спасибо Александру (_Boroda_) Далее формула сама преобразуется в нашем случае в
Код
=СУММ('Иванов:ЕЩЕ 30 ЛИСТОВ'!B2)
- "Даблкличим" по чёрному крестику в ячейке B2 Всё, что получилось в приложенном файле. Но, не сомневаюсь, что Вам предложат более практичные, быстрые и изящные варианты.
ComiC, и Вам доброго времени суток. Вариантов решения, наверное, немало. Как бы сделал я в четвертом часу ночи (мск)... - Выделил бы все листы книги (включая лист "Итого") и вставил бы во все листы единый список всех фруктов Например, такой
- Заполнил бы количество по каждому из листов, кроме листа "Итого". Предположим, этим занимаются разные люди, каждый заполняет свой лист, согласно фамилии. Хотелось бы верить, что не вручную - Перешел бы на лист "Итого" и в ячейку B2 формулу
Код
=СУММ('*'!B2)
Формула взята отсюда. В триллионный раз Спасибо Александру (_Boroda_) Далее формула сама преобразуется в нашем случае в
Код
=СУММ('Иванов:ЕЩЕ 30 ЛИСТОВ'!B2)
- "Даблкличим" по чёрному крестику в ячейке B2 Всё, что получилось в приложенном файле. Но, не сомневаюсь, что Вам предложат более практичные, быстрые и изящные варианты.Che79
ComiC, Да если нет на листе этого фрукта то ничего страшного, а вот если их много одинаковых на листе это уже другая история. Тогда такой вариант [vba]
Код
Sub test() Dim wSh As Worksheet, KolVo As Long, cl As Object Application.ScreenUpdating = False
On Error Resume Next For Each cl In Sheets("Итого").Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row) For Each wSh In Worksheets If wSh.Name <> "Итого" Then lrws = wSh.Cells(Rows.Count, 1).End(xlUp).Row SummwSh = WorksheetFunction.SumIf(wSh.Range("A1:A" & lrws), cl, wSh.Range("B1:B" & lrws)) KolVo = KolVo + SummwSh End If Next cl.Offset(, 1) = KolVo KolVo = 0 Next Application.ScreenUpdating = True End Sub
[/vba]
ComiC, Да если нет на листе этого фрукта то ничего страшного, а вот если их много одинаковых на листе это уже другая история. Тогда такой вариант [vba]
Код
Sub test() Dim wSh As Worksheet, KolVo As Long, cl As Object Application.ScreenUpdating = False
On Error Resume Next For Each cl In Sheets("Итого").Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row) For Each wSh In Worksheets If wSh.Name <> "Итого" Then lrws = wSh.Cells(Rows.Count, 1).End(xlUp).Row SummwSh = WorksheetFunction.SumIf(wSh.Range("A1:A" & lrws), cl, wSh.Range("B1:B" & lrws)) KolVo = KolVo + SummwSh End If Next cl.Offset(, 1) = KolVo KolVo = 0 Next Application.ScreenUpdating = True End Sub
В диспетчер имен (Контрл F3) пишете имя "Листы" с формулой
Код
=ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
Затем на листе Итого переносите столбцы для сбора на один (или несколько) столбец вправо - получаем в столбце В фрукты, а в столбце С Количество В С2 формулу
В диспетчер имен (Контрл F3) пишете имя "Листы" с формулой
Код
=ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
Затем на листе Итого переносите столбцы для сбора на один (или несколько) столбец вправо - получаем в столбце В фрукты, а в столбце С Количество В С2 формулу