ผลรวมย่อยของ Excel สำหรับเซลล์ว่าง


2

ฉันมีข้อมูลใน excel ซึ่งดูเหมือนว่า

10
15
12

3
2

5
3

ฉันต้องการให้ส่งคืนผลรวมย่อยเช่น

10
15
12
    37
3
2
    5
5
3
    8

มีวิธีในการบรรลุสิ่งนี้ใน Excel หรือไม่?

คำตอบ:


3

ทางเลือกที่อาจมีการใช้งานบางอย่างและอาจมีความหลากหลายมากขึ้น (หลีกเลี่ยง 'สัตว์ประหลาด' ในกรณีที่ไม่สามารถส่ง / รักษาด้วยมือได้ง่าย) คือการรวมการดำเนินการที่คุ้นเคยเข้าด้วยกัน

สมมติว่า: ColumnAคือ 'ว่าง'; ค่าอยู่ในColumnB; Row1มีป้ายกำกับและC1มีบางอย่างในนั้น (พูดว่า 'ผลรวม')

ต้องใช้บัตรประจำตัวของ 'บล็อก' ค่าเพื่อกรองA:C, untick (Blanks)ในBคีย์พูด 'V' เข้าA2และคัดลอกลงไปที่หมายเลขแถวสีฟ้าที่ผ่านมา

เลือกA1:C{last blue row number}เอาตัวกรอง (ถ้าจำเป็นต้องมีการจัดกลุ่ม) ผลรวมย่อยที่มีในแต่ละการเปลี่ยนแปลงใน: '(คอลัมน์ A), การใช้งานฟังก์ชั่น: 'ซำ' เพิ่มผลรวมย่อยให้กับ: ติ๊ก OK'ซำ'

ลบแถวว่างเปล่า (เช่นโดยการกรองColumnA) ColumnAแล้วลบ

เลือกColumnBหาสิ่งที่: 'B' แทนที่ด้วย: 'A' Replace Allคลิก

ยอดรวมทั้งหมดเป็นโบนัส


ขอบคุณมาก. ฉันเรียนรู้มากขึ้นเกี่ยวกับ Excel ผ่านคำตอบนี้!
picakhu

5

ฉันมากับสัตว์ประหลาดตัวนี้ แต่มันใช้ได้ดีคุณสามารถคัดลอกมันลงได้:

=IF(ISBLANK(A4),SUBTOTAL(9,OFFSET(B4,IFERROR(MATCH(0,$B$1:B3,-1),1)-ROW(),-1,ROW()-IFERROR(MATCH(0,$B$1:B3,-1),1),1)),"")

นี่คือต้นฉบับของฉัน (เยอรมัน):

=WENN(ISTLEER(A4);TEILERGEBNIS(9;BEREICH.VERSCHIEBEN(B4;WENNFEHLER(VERGLEICH(0;$B$1:B3;-1);1)-ZEILE();-1;ZEILE()-WENNFEHLER(VERGLEICH(0;$B$1:B3;-1);1);1));"")

ดังนั้นเมื่อเซลล์ใน Col A ว่างให้ทำ subsum โดยรวมค่า obove ขึ้นไปจนถึง subsum สุดท้ายหรือ 1

หากฟอรัมไม่ชัดเจนโปรดสอบถามเกี่ยวกับข้อมูลเฉพาะ

แก้ไข

ในรหัสหลอก / อธิบายแล้ว:

IF(ISBLANK(A4),SUBTOTAL(),"")

หากเซลล์ของแถวปัจจุบันในคอลัมน์ A ว่างให้คำนวณผลรวมย่อยไม่เช่นนั้นจะไม่แสดงอะไรเลย

SUBTOTAL(9,RANGE)

สร้างผลรวมย่อยโดยใช้ฟังก์ชันผลรวม (9) สำหรับ RANGE ที่กำหนด

RANGE = OFFSET(B4,ROWS,COLS,HEIGHT,WIDTH)

ช่วงของผลรวมย่อยถูกสร้างขึ้นโดยการชดเชย / ขยายขอบเขตขึ้นอยู่กับเซลล์ B4

ในตัวอย่างที่เป็นรูปธรรมของ B4 นี้จะเหมือนกับการเขียน:

OFFSET(B4,-3,-1,3,1)

ดังนั้นสร้างช่วงซึ่งมี 3 แถวด้านบน B4 (-3) และ 1 คอลัมน์ทางซ้าย (-1) และคือ 3 แถวลง / สูงและกว้าง 1 คอลัมน์

ในการคำนวณ -3 และ 3 ซึ่งจะแตกต่างกันไปตามแถวระหว่างสองเซลล์ว่างในคอลัมน์ A เราใช้สิ่งเหล่านี้:

IFERROR(MATCH(0,$B$1:B3,-1),1)-ROW()

ROW()-IFERROR(MATCH(0,$B$1:B3,-1)

ซึ่งโดยทั่วไปแล้วจะเหมือนกันยกเว้นเครื่องหมาย

MATCH(0,$B$1:B3,-1) ค้นหาสิ่งที่อยู่เหนือ 0 (-1 หมายถึงใหญ่กว่า) ในคอลัมน์ b จากเซลล์แรกไปยังเซลล์ก่อนหน้าของเซลล์ปัจจุบัน ($ B $ 1: B3)

เนื่องจากการทำเช่นนี้จะส่งผลให้เกิดข้อผิดพลาดสำหรับผลรวมย่อยแรกข้อIFERRORเสนอที่ 1 เพื่อแก้ไขสิ่งนี้

ดังนั้นเมื่อคุณอยู่ใน B4 คุณจะค้นหาว่ามีค่าใด ๆ ที่สูงกว่า B4 สมมติว่านี่เป็นผลรวมย่อยและถ้าคุณหาไม่พบคุณก็ใช้ 1 เป็นแถวของคุณ 1-4 = -3; 4-1 = 3 ไปแล้ว


ขอบคุณมากสำหรับสิ่งนี้ แต่ฉันไม่สามารถทำงานได้ ฉันได้รับข้อผิดพลาด #NAME
picakhu

นอกจากนี้อาจเป็นข้อผิดพลาดในการแปล แต่ไม่มี "SUBSUM" ใน Excel ของฉัน
picakhu

คุณอาจต้องการตรวจสอบสูตรเหล่านี้ตามส่วนต่าง ๆ อาจมีข้อผิดพลาดในการแปลบางชนิดและลองวางลงในเซลล์ด้วย37ตัวอย่างของคุณ ฉันจะตรวจสอบอีกครั้ง
Jook

ใช่ - และไม่มี ISEMPTY -> ISBLANK คือสิ่งที่ควรเป็น SUBSUM -> SUBTOTAL; ฉันแก้ไขคำตอบของฉัน
Jook

1
Btw ถ้ามันไม่ทำงานมากเกินไปคุณสามารถโพสต์รหัสเทียมที่เหมาะสมที่ทำให้งานนี้ได้หรือไม่ ฉันไม่เข้าใจมันง่ายเกินไป
picakhu

0

สูตรสั้นทางเลือกอื่นที่คุณสามารถลอง:

บรรทัดสูงสุดในการคำนวณสามารถเพิ่มได้โดยการเพิ่ม "$ A $ 1,000" โดยใช้ A2 เป็นบรรทัดที่ 1:

= IF (A2 = "", SUM ($ A $ 1: $ A $ 1000) -SUM (A3: $ A $ 1000) -SUM ($ B $ 1: N2), "")


0

ฉันคิดวิธีแก้ปัญหาแบบเดียวกันนี้ขึ้นมา:

ป้อนคำอธิบายรูปภาพที่นี่

แก้ไขโดยใช้=if(isblank(a2),H1+1,H1+0)สูตรใน H2 และ 1 ใน H1 หลังจากนั้นใช้คำบรรยายง่าย ๆ เพื่อแก้ปัญหา

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