ใน 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 โดยใช้สูตรหลายประเภทในเซลล์ที่แตกต่างกันที่เพิ่มเข้ามาและทำงานได้อย่างถูกต้อง (มันล้มเหลวด้วยข้อผิดพลาดการอ้างอิงแบบวงกลมหากเซลล์ที่ถูกเพิ่มมีสูตรที่อ้างอิงเซลล์ด้วยผลรวม) คุณมีตัวอย่างเฉพาะหรือไม่?
Mark Meuer

1
+1 คูณล้าน ใช้งานได้ใน Google ชีตซึ่งช่วงของฟังก์ชันผลรวม -DON'T- จะได้รับการอัปเดตโดยอัตโนมัติ ขอบคุณมาก.
seekerOfKnowledge

1
ฉันเพิ่งทดสอบในGoogle ชีตและการรวมกันของฟังก์ชั่นทำงานได้อย่างสมบูรณ์แบบ
Sun

1
คำตอบนี้ช่วยชีวิตฉันไว้!
kRazzy R

1
ดูเหมือนว่าจะทำงานใน LibreOffice Calc ด้วย
Dejan

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
เมื่อคุณสะกดมันออกมาแล้วฉันก็รู้ถึงพฤติกรรมนี้ แต่ด้วยเหตุผลบางอย่างฉันคิดว่ามันจะเป็นการง่ายที่จะมีสูตรที่จะหาผลรวมจากเหนือเซลล์ปัจจุบันเสมอ แต่เห็นได้ชัดว่าการสร้างช่วงผลรวมง่ายกว่าสูตรที่ซับซ้อนที่ฉันคิดขึ้น ฉันฉลาดเกินกว่าครึ่ง ขอบคุณ! (ฉันจะต้องปลอบใจตัวเองว่าอย่างน้อยฉันก็เรียนรู้เกี่ยวกับ INDIRECT และที่อยู่ซึ่งฉันไม่เคยใช้มาก่อน)
Mark Meuer

2
ฉันเปลี่ยนคำตอบที่ยอมรับแล้วเป็นคำตอบที่ฉันโพสต์ไว้เพราะมีการเพิ่มขึ้นของผู้ติดตามในอีกหนึ่งปีต่อมางานที่ฉันถามในคำถามนั้นเห็นได้ชัดและใช้ได้กับสเปรดชีตของ Google ที่ไม่ตอบ แต่ @Doktoro คำตอบของคุณให้ข้อมูลเชิงลึกที่มีประโยชน์มากและฉันรู้สึกขอบคุณสำหรับมัน
ทำเครื่องหมาย Meuer

1
มีข้อบกพร่องคือ: แทรกแถวที่ท้าย (ก่อนแถวว่าง) อย่างน้อยใน LibreOffice สิ่งนี้จะปล่อยสูตร SUM ด้วยช่วงดั้งเดิมนั่นคือละเว้นแถวใหม่ ทางออกของฉัน: SUM(OFFSET(A$1; 0; 0; ROW(A7)-ROW(A$1); 1)). เนื่องจากมันอ้างถึงตัวเองและไม่ใช่แถวด้านบนจึงมักจะปรับช่วงได้อย่างถูกต้อง
Tilman Vogel

@TilmanVogel 's shoud เป็นคำตอบ! ขอบคุณมาก
Genarito

5

คำตอบนี้มีเฉพาะสำหรับ Libra Office แต่ควรใช้ได้กับ Excel เช่นกัน

โดยทั่วไปหากเราต้องการพูดถึงอย่างชัดเจนแถว / คอลัมน์จะถูกแช่แข็งเราควรพูดถึง $ กับแถว / คอลัมน์นั้น

* มี algo ในตัวเช่นกันเช่นเมื่อคุณคัดลอกสูตรไปยังเซลล์อื่น Libra Office จะกำหนดอัตโนมัติว่าควรเปลี่ยนค่าสูตรอย่างไร

ดังนั้นสมมติว่าคุณต้องเพิ่มแถวทั้งหมด G1: GN => โดยที่ N คือหมายเลขแถวปัจจุบัน สำหรับสิ่งนี้คุณต้องการแก้ไขแถวของค่าแรกและเก็บค่าอื่นเป็น ดังนั้นสูตรจะเป็น:

= SUM (G $ 1: G1) -> สำหรับแถวที่ 1 จากนั้นคุณสามารถคัดลอกวางสูตรไปยังเซลล์อื่น

Libra Office จะทำให้ G1 เป็นค่าแรกโดยอัตโนมัติและเปลี่ยนค่าที่ 2 เป็น G2, G3 และอื่น ๆ สำหรับทุกเซลล์


ตามคำตอบของ Apostolos55> = Sum ($ A1: A1) <มันจะไม่ทำงานเฉพาะคอลัมน์ A เท่านั้นที่จะได้รับการแก้ไขในขณะที่ Row จะยังคงแตกต่างกันเมื่อสูตรถูกคัดลอกไปยังเซลล์อื่นในคอลัมน์เดียวกัน ดังนั้น $ จะต้องต่อท้ายแถวเพื่อรับค่าที่ถูกต้องในสูตร เพิ่มเติมมันไม่ได้อธิบายสิ่งที่สามารถเป็นชุดค่าผสมอื่น ๆ ดังนั้นฉันจึงให้ทางเลือกอื่น $ จะต้องมีการใช้กับทั้งแถวและคอลัมน์หากเซลล์จะต้องมีการคงที่
Prateek

3

ตกลงทางอ้อม () จะผันผวน ... ดังนั้นเมื่อแผ่นงานของคุณขยายใหญ่ขึ้นก็จะช้าลงเท่านั้น ถ้ามันเหมาะกับคุณคุณควรใช้:

=Sum($A1:A1)

เมื่อคุณลากสูตรนี้ลงคุณจะมีช่วงตั้งแต่ A1 จนถึงเซลล์ปัจจุบัน (หรืออื่น ๆ ก่อนหน้า) เสมอ ไม่ระเหยเร็วมากง่ายกว่านี้อีก!


ขอบคุณสำหรับคำตอบ โปรดช่วยฉันเข้าใจคำตอบของคุณแตกต่างจาก @Doktoro Reichard อย่างไร
Mark Meuer

นี่คือผลรวมที่สามารถ "ติดตาม" ข้างเซลล์ของคุณพูดในคอลัมน์ถัดไป จากนั้นด้วย IF คุณสามารถแสดง / คำนวณผลรวมล่าสุดได้เท่านั้น อาจไม่ใช่สิ่งที่คุณกำลังมองหา แต่ดีที่จะรู้
Apostolos55

ขอบคุณสำหรับข้อมูล. คุณถูกต้องว่ามันไม่ได้แก้ปัญหาจากคำถามเดิม (ซึ่งกำลังมองหาสูตรเฉพาะเพื่อรวมจำนวนเหนือเซลล์) แต่อาจมีประโยชน์ในสถานการณ์อื่น ๆ
Mark Meuer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.