วิธีใช้ ARRAYFORMULA และ SUM ร่วมกันเพื่อให้ได้คอลัมน์ที่มีผลรวมของคอลัมน์ที่มาก่อน


11

ใน Google ชีตฉันมีข้อมูลต่อไปนี้:

    |   A |  B  |  C  |  ...  | N  | TOTALS       |
  1 |  123|  425|  324|  ...  | 234| =SUM(A1:N1)  |
  2 |  123|  425|  324|  ...  | 234| =SUM(A2:N2)  |
  3 |  123|  425|  324|  ...  | 234| =SUM(A3:N3)  |

ฉันจะสร้างTOTALSคอลัมน์โดยใช้ ARRAYFORMULA ได้อย่างไร

ARRAYFORMULA(SUM(A1:C99)) จะให้ตัวเลขเดียวผลรวมของเซลล์ทั้งหมด - นั่นไม่ใช่สิ่งที่ฉันต้องการ

คำตอบ:


8

ใช้สูตรต่อไปนี้เพื่อทำเช่นนั้น

สูตร

=MMULT(B2:E4,TRANSPOSE(ARRAYFORMULA(COLUMN(B2:E4)^0)))

อธิบาย

ARRAYFORMULAจะหมายถึงการกลับมาช่วงที่สมบูรณ์ตามที่กำหนดโดยCOLUMNสูตร ความ^0 (power of zero)ประสงค์จะกลับมาที่ 1 เสมอดังนั้นผลลัพธ์แต่ละรายการจะถูกคูณด้วย 1 (ให้ค่าเดียวกัน) และรวม

ตัวอย่าง

ฉันได้สร้างไฟล์ตัวอย่างสำหรับคุณ: SUM OVER ROWS


2
@YisraelDov อย่าลืมทำเครื่องหมายคำตอบว่ายอมรับถ้าเป็นสิ่งที่คุณต้องการ
อเล็กซ์

นี่คือคำตอบที่น่าทึ่ง
Michael Litvin

มีความคิดเกี่ยวกับวิธีทำให้มันทำงานกับเซลล์ว่างได้อย่างไร (ให้ถือว่าเป็น 0)
Michael Litvin

2
@MichaelLitvin: =ARRAYFORMULA(SUMIF(IF(COLUMN(B1:E1),ROW(B2:E4)),ROW(B2:E4),B2:E4))ลองนี้ ht ถึง @AdamL
จาค็อบ ม.ค. Tuinstra

ในการจัดการที่ว่างเปล่าหนึ่งตัวเลือกคือการใช้indirectแทนช่วง ในกรณีของฉันฉันใช้นี่indirect("e3:y"&max(arrayformula((index(E3:Y,0,0)<>"")*row(E3:Y))))
BrunoLM

2

วิธีการรวมคอลัมน์ด้วยตนเอง:

=arrayformula(A:A + B:B + C:C)

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