У меня есть полный список продуктов в Excel, и в этом списке есть информация о наших продуктах (название, SKU, категория, количество на складе и т. Д.), И у меня есть 4 отдельных файла Excel с номерами SKU и количествами на складе (почему 4 разных ?: Склады подсчитываются из разных отделов.)

Что я хочу? : Объединить все подсчитанные суммы запасов в окончательный файл.

Предположим, есть такая структура, как показано ниже.

Конечный файл (final-stock-count.xls), файл stock-count1.xls, файл stock-count2.xls, файл stock-count3.xls, файл stock-count4.xls:

Столбец = Артикулы
Столбец B = названия продуктов
Столбец C = количество запасов

ПРИМЕЧАНИЕ: я могу поместить все эти файлы в один файл как рабочие таблицы.

Я хочу, чтобы Excel просматривал ячейку SKU для каждого списка (ячейка A2 рабочей таблицы stock-count1) и заполняла ячейку Stock Amounts для окончательного списка (ячейка C2 рабочей таблицы final-stock-count), если значения SKU совпадают, и так далее. Поскольку я не знаю точных ссылок на ячейки (порядок ячеек A2, C2, ...), это должно быть сделано с помощью формулы или другим способом.

enter image description here

ПРИМЕЧАНИЕ. Я не знаком с VBA, но если вы просто объясните, где мне редактировать, я смогу это сделать.

3
Alper 31 Дек 2015 в 13:34

2 ответа

Лучший ответ

Здесь нет необходимости в громоздком VLOOKUP, встроенном в оператор IFERROR, когда SUMIF будет работать нормально, поскольку он будет игнорировать любые листы, которые не содержат SKU. (Он также имеет преимущество добавления любого запаса, который может быть на нескольких листах - если это даже так).

Это сработает, если вы введете C1 вашего последнего листа и потянете вниз.

=SUMIF(stock-count1!A:A,A2,stock-count1!C:C)+SUMIF(stock-count2!A:A,A2,stock-count2!C:C)+SUMIF(stock-count3!A:A,A2,stock-count3!C:C)

Вы можете продолжать добавлять операторы SUMIF по мере необходимости для всех ваших листов.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Если у вас много-много листов, вы можете поместить имена своих листов в строку 1 последнего листа (скажем, начиная со столбца E), а затем перетащить эту формулу по столбцам (и вниз по строкам для каждого SKU), чтобы получить счет артикула для каждого листа, затем напишите простую формулу SUM в столбце C, чтобы получить общую сумму для каждой артикула.

=SUMIF(INDIRECT(E$1&"!A:A"),A2,INDIRECT(E$1&"!C:C"))
2
Scott Holtzman 31 Дек 2015 в 14:05

Используйте VLOOKUP, одну из функций поиска и ссылки, когда вам нужно найти элементы в таблице или в диапазоне за строкой.

Вы можете комбинировать ВПР с вложенными функциями ЕСЛИОШИБКА, чтобы последовательно искать значения во всех трех таблицах.

Например, следующая формула:

=IFERROR(VLOOKUP(A2,$F$2:$H$5,3,FALSE),IFERROR(VLOOKUP(A2,$I$2:$K$5,3,FALSE),VLOOKUP(A2,$L$2:$N$5,3,FALSE)))

Логика такая:

  1. Значение A2 ВПР в диапазоне F2: H5 (оно будет автоматически искать в первом столбце, чтобы получить что-то F)

  2. VLOOKUP возвращает значение 3-го столбца для этого поиска (H-something), а

  3. ЕСЛИ возвращается ОШИБКА (значение не найдено), перейдите к следующему поиску: таблица I-K.

Ваша формула будет выглядеть примерно так: три диапазона будут заменены диапазонами вашего внешнего листа.

=IFERROR(VLOOKUP(A2,[first range],3,FALSE),IFERROR(VLOOKUP(A2,[second range],3,FALSE),VLOOKUP(A2,[third range],3,FALSE)))

Дополнительную информацию см. здесь. на ВПР.

0
Will F 31 Дек 2015 в 13:48