Tổng các giá trị từ một cột dựa trên kết quả khớp trong một cột khác và sự xuất hiện khác biệt đầu tiên của giá trị trong cột thứ ba


0

Tôi đang cố gắng tìm ra một giải pháp dựa trên công thức để tính tổng các giá trị trong một cột dựa trên việc khớp một giá trị trong một cột khác nhưng chỉ cho các lần xuất hiện khác nhau của các giá trị trong cột thứ ba.

Đây là một bảng tính mẫu đơn giản hóa:

Đây là một bảng tính mẫu rất cơ bản

Tôi cần ghép chữ cái trong cột F (A, B, C) với cột "Chữ cái" B, sau đó tính tổng giá trị trong cột "Giá trị" một lần cho mỗi số riêng biệt trong cột "Số" và hiển thị tổng đó trong cột G "Tổng giá trị".

Tổng chính xác được hiển thị trong các ô của cột G nhưng tôi không có công thức để thực hiện điều này. Bất kỳ trợ giúp sẽ được đánh giá cao!


Nói chung, bạn sẽ không nhận được câu trả lời tốt nếu bạn yêu cầu một giải pháp hoàn chỉnh. Bạn cần phải có một kế hoạch và một số mã để mọi người nhìn vào. Bạn có thể gặp may mắn hơn trên Mr. Excel: mrexcel.com
HackSlash

Câu trả lời:


0

Đối với loại vấn đề này, nó giúp suy nghĩ về các mảng.

Nếu bạn có thể lấy một mảng (danh sách) các số trong Giá trị (cột D) trong đó Chữ cái (cột B) bằng "A" và Số đã bị trùng lặp, bạn chỉ cần tổng hợp mảng để có câu trả lời.

Biểu thức này:

(B$2:B$12=F2)

đưa ra một mảng các True/Falsegiá trị với Truebất cứ nơi nào cột B = "A". Cái này:

(C$2:C$12<>C$3:C$13)

đưa ra một mảng các True/Falsegiá trị với Truebất cứ nơi nào một ô trong cột C không bằng ô sau. Bởi vì các bản sao của bạn nằm trong các ô liên tiếp (nhận xét bên dưới nếu điều này không phải luôn luôn như vậy), mảng này có Falsecác lần xuất hiện thêm của một giá trị, và về cơ bản, nó lọc ra các bản sao. Nhân hai mảng này với nhau:

(B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)

chuyển đổi True/Falsegiá trị thành 1 và 0 và đưa ra một mảng có 1 ở vị trí mà chúng ta muốn tính tổng. Sử dụng mảng này làm logical_testtrong một IF()và cột D là value_if_true:

IF((B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)>0,D$2:D$12)

trả về một mảng các Giá trị trong cột D bất cứ nơi nào có số 1, xen kẽ với Falsebất cứ nơi nào có số không. Bây giờ chúng ta chỉ có thể tổng hợp các mảng. Công thức này, được điền từ G2 cho kết quả hiển thị bên dưới.

=SUM(IF((B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)>0,D$2:D$12))

Lưu ý rằng đây là một công thức mảng và phải được nhập với CTRLShiftEnter.

nhập mô tả hình ảnh ở đây


1
Đây là một giải pháp (và chức năng) tuyệt vời và tôi đánh giá cao độ sâu trong việc giải thích các cơ chế của việc nhân các mảng để kiểm tra nhiều tiêu chí!
Robert Brett

Tuyệt quá! Vui mừng được giúp đỡ.
Bandersnatch

0

Nếu bạn có thể thêm các cột vào dữ liệu của mình, những điều sau đây sẽ hoạt động với ví dụ đơn giản được đưa ra:

  1. Thêm một công thức để nối các chữ cái và số. Tôi đã sử dụng cột A cho công thức này, tức là Ô A2: = B2 & C2
  2. Kéo công thức này xuống để áp dụng cho các ô A2: A12
  3. Thêm một công thức để kiểm tra xem mỗi cách ghép các chữ cái và số có phải là phép nối duy nhất đầu tiên hay không. Tôi đã sử dụng cột E cho công thức này, tức là Ô E2: = COUNTIF (A $ 2: A2, A2)
  4. Kéo công thức này xuống để áp dụng cho các ô E2: E12
  5. Sử dụng công thức sau trong H2 để tính tổng các giá trị trong đó chữ cái khớp với nhau, nhưng chỉ cho phép ghép chữ cái và số đầu tiên, tức là Ô G2: = SUMIFS ($ D $ 2: $ D $ 12, $ B $ 2: $ B $ 12, F2 , $ E $ 2: $ E $ 12,1)
  6. Kéo công thức này xuống để áp dụng cho các ô G2: G4

Điều này hoạt động tốt và sẽ ghi nhớ nó! Cảm ơn bạn.
Robert Brett
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.