Як в Excel можна підсумовувати всі числа вище поточної комірки?


31

Я хочу мати в Excel стовпець, який складається із заголовка, купки чисел, а потім мати суму цих чисел внизу. Я хотів би, щоб сума адаптувалася до вставлення нових чисел вище загальних. Щось на зразок цього:

Numbers
 1
 2
 5
10

18        Total

Якщо пізніше я вставляю 10 нових чисел у середині списку, я хочу, щоб сума автоматично включала їх.

Я знаю, що SUM()функція може підсумовувати цілий стовпець, але якщо загальна сума також є в цьому стовпчику, то вона скаржиться на кругову посилання. Як я можу просто підсумувати числа вище загальної?

Відповіді:


51

Функції ROW()і COLUMN()дадуть рядок і стовпець поточної комірки. Використовуйте їх у ADDRESS()функції для створення рядка, що представляє діапазон від верху поточного стовпця до рядка вище загального. Потім використовуйте INDIRECT()функцію, щоб перетворити цей рядок у реальний діапазон, щоб надати SUM()функцію. Формула для загальної комірки буде такою:

=SUM(INDIRECT(ADDRESS(1,COLUMN())&":"&ADDRESS(ROW()-1,COLUMN())))

Помістіть це в будь-яку клітинку електронної таблиці, і вона створить суму всіх чисел у стовпці над цією коміркою.


1
@ user370646 Насправді я лише тестував це в Excel 2010, використовуючи кілька різних типів формул у різних осередках, що додаються, і він працював правильно. (Це не вдається з круговою посилальною помилкою, якщо додані комірки містять формулу, яка посилається на комірку із сумою.) Чи є у вас конкретні приклади?
Марк Меуер

1
+1 раз мільйон. Це працює в Google Таблицях, де діапазони функцій суми -DON'T- автоматично оновлюються. Дуже дякую.
шукачOfKnowledge

1
Я щойно тестував у Google Таблицях, і поєднання функцій ідеально працює.
Нд

1
Ця відповідь врятувала мені життя!
kRazzy R

1
Здається, працює і в LibreOffice Calc.
Деян

6

Насправді ви можете робити те, що хочете, просто =SUM()

Припустимо, що ваш лист Excel має такий дизайн:

\|  A  |  B  |
-+-----+-----+
1|  1  |     |
2|  2  |     |
3|  3  |     |
4|  4  |     |
5|  5  |     |
6|     |     |
7|  15 |Total|

Assumng A7є =SUM(A1:A5), ви можете додати кілька рядків , як ви будь ласка, як Excel розширить =SUM«s діапазон відповідно.

Припустимо, що я вибираю рядки 2, 3 і 4 і вставляю рядки. Результатом буде таке:

 \|  A  |  B  |
--+-----+-----+
 1|  1  |     |
 2|     |     |
 3|     |     |
 4|     |     |
 5|  2  |     |
 6|  3  |     |
 7|  4  |     |
 8|  5  |     |
 9|     |     |
10|  15 |Total|

A10дорівнює =SUM(A1:A8). Тепер ви можете вставляти нові цифри за бажанням.


1
Тепер, коли ви це промовляєте, я знав про таку поведінку. Але я чомусь думав, що було б зручно просто мати формулу, яка завжди підсумовувала б трохи вище поточної комірки. Але, очевидно, простіше створити простий діапазон сум, ніж складну формулу, яку я придумав. Я був надто розумний наполовину. Спасибі! (Мені доведеться потішити себе, що я, принаймні, дізнався про НЕПРЯМКУ і АДРЕСУ, якими раніше не користувався.)
Марк Мейер

2
Я змінив прийняту відповідь на ту, яку я опублікував як та, що протягом року продовжує отримувати підсумки, виконує завдання, про яке я задав питання, і, мабуть, працює в електронних таблицях Google, де цього відповіді немає. Але, @Doktoro, ваша відповідь дала дуже корисне розуміння, і я вдячний за це.
Марк Меуер

1
Є недолік: Вставте рядок в кінці (перед порожнім рядком). Принаймні, у LibreOffice, це залишить формулу SUM з початковим діапазоном, тобто опустивши новий рядок. Моє рішення: SUM(OFFSET(A$1; 0; 0; ROW(A7)-ROW(A$1); 1)). Оскільки він відноситься до себе, а не до рядка вгорі, він завжди буде правильно регулювати діапазон.
Тільман Фогель

Відповідь @TilmanVogel має бути відповіддю! Величезне спасибі
Genarito

5

Ця відповідь стосується офісу Терезів, але має працювати і для Excel.

В основному, якщо ми хочемо прямо згадати рядок / стовпець, який потрібно заморозити, нам слід згадати $ з цим рядком / стовпцем.

* Також є вбудований альго такий, що коли ви копіюєте формулу в інші комірки, служба Ваг автоматично визначить, як вона повинна змінювати значення формули.

Отже, припустимо, що вам потрібно додати всі рядки G1: GN => де N - номер поточного рядка. Для цього потрібно виправити рядок першого значення, а інші значення зберегти як. Тож формула буде такою:

= SUM (G $ 1: G1) -> для 1-го ряду, а потім ви можете скопіювати і вставити формулу в інші комірки.

Офіс Терезів автоматично зберігатиме G1 як перше значення та динамічно змінює 2-е значення на G2, G3 тощо для кожної комірки.


Відповідно до відповіді Apostolos55> = Сума ($ A1: A1) <, вона не буде працювати, оскільки буде зафіксовано лише стовпець А, тоді як рядок все ще буде змінюватися, коли формула буде скопійована в інші комірки того ж стовпця. Отже, $ слід додати до рядка, щоб отримати правильні значення у формулі. Далі, це не пояснило, якими можуть бути інші комбінації, тому я надав альтернативну. $ Повинен бути застосований як до рядка, так і до стовпця, якщо комірка повинна бути постійною.
Prateek

3

Гаразд, непрямий () є мінливим ... так що, як ваш аркуш зростає, він стане лише повільніше. Якщо це вам підходить, вам краще скористатися:

=Sum($A1:A1)

коли ви перетянете цю формулу вниз, у вас завжди буде діапазон від А1 до поточної (або попередньої тощо) комірки. Ніяких летких, дуже швидких, набагато простіших!


Дякую за відповідь. Будь ласка, допоможіть мені зрозуміти, чим ваша відповідь відрізняється від відповіді @Doktoro Reichard?
Марк Меуер

Це сума, яка може «слідувати» поряд із вашими клітинками, скажімо в наступному стовпці. Тоді за допомогою ІФО ви можете показати / розрахувати лише останню суму. Напевно, не те, що ви шукаєте, але добре знати.
Апостолос55

Спасибі за інформацію. Ви маєте рацію, що це не вирішує проблему з початкового питання (яке спеціально шукає формулу для підсумовування числа над коміркою), але може бути корисною в інших ситуаціях.
Марк Меуер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.