Изучение сводных таблиц - отличная идея, но вы также можете сделать это с помощью формулы массива.
Поместите эту формулу в первую ячейку в столбце A второй книги, где вы хотите, чтобы данные отображались:
=IFERROR(INDEX([Workbook1]Sheet1!A:A,SMALL(IF([Workbook1]Sheet1!$H:$H="HCC",ROW([Workbook1]Sheet1!$H:$H)),ROW())),"")
Заметки:
- Заменить "
[Workbook1]Sheet1!A:A
"` с фактической книгой и именами листов. Самый простой способ сделать это - после ввода первой части формулы перейти к другой книге и нажать "А" в верхней части столбца А.
- То же самое для обоих экземпляров "
[Workbook1]Sheet1!$H:$H
". Вы должны будете добавить $.
- Измените последний «
ROW()
» на « ROW() - n
», где n на 1 меньше номера строки, в которую вы вводите формулу. Если вы находитесь в строке 1, вам не придется менять ее.
- Наконец, это формула массива, поэтому вам нужно ввести ее, используя CTRL Shift Enter, а не просто Enter. Если введено правильно, формула будет окружена фигурными скобками {} в строке формул.
Теперь заполните формулу как можно дальше или дальше того места, где вы ожидаете получить данные в будущем. Наконец, скопируйте выбранный диапазон и вставьте его в первую ячейку всех остальных столбцов, в которые вы хотите извлечь данные из рабочей книги 1. Формула будет заполнять пробелы, когда у нее заканчиваются рассчитанные значения.
На следующей неделе, если в первой книге будет больше (или меньше) строк данных, они все равно будут правильно скопированы во вторую книгу.
Как это работает: Внутренний IF()
проверяет, где столбец H равен "HCC", и возвращает массив номеров строк, где это True, и « FALSE
», где это не так. SMALL()
принимает этот массив и возвращает числа в порядке заполнения формулы. INDEX()
использует эти числа для возврата соответствующих значений из столбца A. Наконец, IFERROR()
вставляет пробелы для сгенерированных ошибок, когда INDEX()
исчерпывает номера строк по мере заполнения.
Надеюсь, это поможет, и удачи.