Пробовал некоторое время искать, не увидел, что искал.

На Листе 1 у меня есть приблизительно 100 столбцов, каждый из которых представляет элемент. Каждая строка заполняется количеством этого элемента. Как вы можете себе представить, очень неудобно непрерывно прокручивать вправо, поэтому я создал Sheet2 ("Количества"). На этом листе я создал те же заголовки, что и sheet1, за исключением того, что вместо каждого элемента, имеющего столбец, я сделал каждый элемент строкой. Так, например:

Лист1:

A1:I1 contains customer information.  No calculating needs to be done here.
J1:DG1 contains a bunch of items (fish, salad, etc).
J2 contains quantity of fish that was ordered by customer A2.
J3 contains quantity of fish that was ordered by customer A3.
K2 contains quantity of salad that was ordered by customer A2.
K3 contains quantity of salad that was ordered by customer A3. 

Лист2:

A1:A102 contains same information as J1:DG1.

Понял до сих пор? Отлично. :)

В Лист2, я хотел бы B1:B102 равна SUM его эквивалент в Лист1. Так, например, B1 в Sheet2 будет: =SUM(Sheet1!J2:J1048576) (сумма всего столбца J). Это прекрасно работает. Вопрос в том, как мне скопировать эту формулу, чтобы она заполняла B2:B102 . Если я копирую то, что я написал выше, в B1, я получаю ошибку. Это работает, если я пытаюсь скопировать форум B1 в C1:DG1 , но это противоречит цели, мне нужно вставить его вниз. (Транспонирование тоже не работает).

ТИА

2 ответа2

0

Нашел обходной путь. 2-й пост в связанной теме. (Зеркало)

Как я уже упоминал в OP, если бы я попытался сделать Sheet2 B1 =SUM(Sheet!J:J) , а затем скопировать его вправо, через столбцы , он будет правильно продолжать формулу, чтобы соответствовать C1 =SUM(Sheet1!K:K), D1 =SUM(Sheet1!L:L, etc) Проблема, однако, заключалась в том, что если попытаться скопировать формулу вниз , между строками, она неправильно обработает формулу. Проблема возникла, даже если я сначала скопировал вправо, через столбцы, а затем cut/paste-special-transpose . Благодаря обходным , хотя, я был в состоянии решить эту проблему транспонирования, и получить все клетки в Sheet2 B:B представлять SUM от Sheet1

Удачи!

Изменить: Добавление зеркала обходного пути, в случае, если он пропадает.

0

Это можно сделать с помощью функции INDEX . Чтобы избежать путаницы с этой функцией, Microsoft решила реализовать два разных типа этой функции. Мы собираемся использовать "массив" -вариант. Больше информации об этой функции здесь . Эта функция позволяет нам выбрать матрицу (ваш лист 1) и выбрать из нее строку или столбец. Функция INDEX возвращает ссылку на эту строку или столбец. Далее мы будем использовать SUM для добавления всех элементов в столбец. Последний трюк - выбрать правильный столбец. Для этого мы найдем номер строки (используя ROW) на листе 2 и используем его для ссылки на правый столбец на листе 1.

Теперь по формуле: поместите это в B2 (столбец A содержит названия продуктов) `= SUM (INDEX (Sheet1!)$ A: $ DG ;; 9+ROW (Лист2!A1))) 'и скопируйте и вставьте по мере необходимости.

Два замечания по формуле:

  • в функции INDEX нет второго аргумента, поэтому функция возвращает ссылку на весь столбец, который затем добавляется (SUM);
  • добавление 9 буксирных ROW необходимо, потому что данные о вашем продукте начинаются в столбце J, 10-м столбце, поэтому 9+1 = 10, первый столбец, который нужно выбрать.

Последнее замечание: чтобы выбрать весь столбец, используйте J:J -обозначение вместо J1:J1048576 как предложено в вашем вопросе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .