Вот вариант, который не использует Power Query или Pivot Tables:
Как указано в комментариях, вы можете создать таблицу результатов вы хотите со всем , за исключением Ordered qty.
и Delivered qty.
пол. Это означает, что все, что нам нужно сделать, это суммировать значения для каждого листа, используя Art-no.
в качестве уникального идентификатора.
Шаг 1: Создайте список со всеми именами листа. Это можно сделать с помощью небольшого VBA, поскольку в вашем файле так много листов.
Sub SheetNames()
Dim ws As Worksheet
Dim r As Integer
Set ws = Worksheets.Add
For r = 1 To Worksheets.Count
ws.Cells(r, 1).Value = Worksheets(r).Name
Next
End Sub
Шаг 2: Создайте именованный диапазон, который ссылается на список имен рабочих листов. Я превратил список в таблицу и основал диапазон имен на этом, но это не обязательно.
Шаг 3: Создание вашей таблицы базовых результатов без Ordered qty.
и Delivered qty.
значений , заполненных Если вы не имеете , что имеется где - то, что может быть проще всего использовать что - то вроде того, что. Сэр Аделаида отправил объединить все листы, удалить поля , которые не нужно стереть все кол-во. значения и удалить дубликаты. Вы можете задаться вопросом, зачем вам это нужно, если вы просто будете следовать этому методу, но уловка на следующем шаге слишком крута, чтобы не поделиться ею.
Шаг 4: Напишите свои формулы для суммирования данных со всех листов одновременно. Во-первых, вот формула, которую вы можете использовать для Ordered qty.
:
=SUMPRODUCT(SUMIF(INDIRECT("'"&sheets&"'!"&"B2:B10000"),[@[Art-no.]],INDIRECT("'"&sheets&"'!"&"D2:D10000")))
Это специальная SUMIF
упаковка SUMPRODUCT
. Ключом к SUMIF
работе с трехмерной ссылкой является INDIRECT
функция и список имен листов, которые мы создали. Вот части формулы:
INDIRECT("'"&sheets&"'!"&"B2:B10000")
Это стандартная INDIRECT
функция, за исключением того, что мы ссылаемся на именованный диапазон, который мы создали в шаге 2, который указывает на список имен листов. Это то, что делает его трехмерным эталоном. Я выбрал, B2:B10000
но вы можете настроить / расширить это по мере необходимости. Легко сделать эталонный путь больше, чем требуется, чтобы убедиться, что ничего не пропущено, если диапазоны в обеих INDIRECT
функциях имеют одинаковый размер. Он должен указывать на столбец с Art-no.
другими листами.
[@[Art-no.]]
Поскольку я превратил свою таблицу результатов в фактическую таблицу в Excel, это просто указывает на Art-no.
значение в текущей строке с формулой.
INDIRECT("'"&sheets&"'!"&"D2:D10000")
Это то же самое, что и другие, INDIRECT
но оно указывает на Ordered qty.
столбец.
SUMIF(~)
Это сейчас становится SUMIF(Art-no. from every sheet, Art-no. in this row, Ordered qty. from every sheet)
SUMPRODUCT(~)
SUMIF
Возвращает массив вместо одного значения , поэтому мы используем это , чтобы просто сложить все значения в этом массиве.
Формула Delivered qty.
такая же , за исключением того, вы должны изменить , D2:D10000
чтобы G2:G10000
или все , что требуется , чтобы указать на колонку с Delivered qty.
в других листах.
Кредит, где кредит должен, я нашел этот метод на CreditJet.net и подумал, что это было круто .