SUMPRODUCT và Công thức mảng – Phép tính có nhiều điều kiện

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Mình xin phân tích cách dùng SumProduct và Công thức mảng.

Hàm SumProduct:
Cấu trúc SUMPRODUCT(array1,array2,array3, …)
Array – Mảng dữ liệu là một tập hợp dãy giá trị liên tiếp trong một khảng nào đó. VD A1:C1 hoặ A1:A10,…

Phép tính này cho phép chúng ta tính tổng của tích array1*array2*array3* …array30.
VD: A: Số lượng; B: Đơn giá
A1 =2 B1=20 C1="Cam" D1="Giống lai"
A2 =3 B2=10 C2="Bưởi" D2="Không"
A3 =4 B3=25 C3="Cam" D3="Không"

1560

Bây giờ cần tính doanh thu của các loại hoa quả
array1=A1:A3
array2=B1:B3
Công thức =SumProduct(A1:A3, B1:B3) = 170
Bản chất công thức làm việc như thế này =A1*B1+A2*B2+A3*B3 kết quả là 170
Nhắc lại về phép tính logic:
Giá trị kiểu logic chỉ cho ra 1 trong 2 giá trị là TRUE/1, FALSE/0
Phép toán logic:<, >, <>, =, >=, <=, Not()
VD:
2>3=False
3>1=True
4>3=True
*) Logic và – AND
=(2>3)*(3>1)*(4>3)=False*True*True=0*1*1=False/0 tương đương với hàm AND(2>3,3>1,4>3). Ít nhất một logic=False thì kết quả sẽ là False hay 0.
* Logic hoặc – OR
=(2>3)+(3>1)+(4>3)=False+True+True=0+1=True/1 tương đương với hàm OR(2>3,3>1,4>3). Ít nhất một logic=True thì kết quả sẽ là True hay 1.
Lưu ý tổng của các giá trị là True=True=1).

*) Tính tổng có nhiều điều kiện:
Cách 1: dùng SUMPRODUCT
Tính tổng doanh thu của loại là "Cam"
=SUMPRODUCT(A1:A3,B1:B3*(C1:C3="Cam")) hoặc =SUMPRODUCT(A1:A3*B1:B3*(C1:C3="Cam")) = 140
Công thức tính như sau:
=A1*B1*(C1="Cam")+A2*B2*(C2="Cam")+A3*B3*(C3="Cam")
=2*20*True+3*10*False+4*25*True
=2*20*1+3*10*0+4*25*1= 140
Cách 2: dung Công thức mảng – "Formula Array"
=Sum(IF(C1:C3="Cam",A1:A3*B1:B3,0))
Kết thức nhẫn tổ hợp CTRL+SHIFT+ENTER. Với cách làm này EXCEL sẽ phân tích như sau:
Xét trên từng dòng trong mảng (array)
dòng1: (c1="Cam")=true nên lấy A1*B1=2*20
dòng2: (c2="Cam")=false nên lấy 0 (theo cách của lấy của hàm IF)
dòng3: (c3="Cam")=true nên lấy A3*B3=4*25
Sau khi chạy hết các dòng, EXCEL sẽ dùng hàm SUM để tính tổng kết quả tính được ở từng dòng=2*20+0+2*25=140. Nếu trong công thức là hàm khác hàm SUM thì cách tính sẽ theo hàm đó.

Như vậy có 2 cách tính:

=SUMPRODUCT(A1:A3*B1:B3*(C1:C3="Cam")) và
=Sum(IF(C1:C3="Cam",A1:A3*B1:B3,0))

*) Vậy tại sao không dùng là =SUM(A1:A3*B1:B3*(C1:C3="Cam"))
mà phải dùng hàm =SUMPRODUCT(A1:A3*B1:B3*(C1:C3="Cam")) ?

Các bạn nhớ lại cấu trúc của SUM là
SUM(number1,number2, …)
Còn SUMPRODUCT là
SUMPRODUCT(array1,array2,array3, …)
number <> array

Nếu SUMPRODUCT(A1:A3*B1:B3*(C1:C3="Cam")) rồi ENTER là đúng vì đối số của nó phải là mảng – Array.

Nếu công thức =SUM(A1:A3*B1:B3*(C1:C3="Cam")) rồi ENTER kết quả là #VALUE! -lỗi vì A1:A3 là một array chứ không phải là một number.

Nếu nhấn tổ hợp CTRL+SHIFT+ENTER. Với cách làm này EXCEL sẽ phân tích như sau:
Xét trên từng dòng trong mảng (array)
dòng1: A1*B1*(c1="Cam")=2*20*True=2*20*1
dòng2: A2*B2*(c2="Cam")=3*10*False=3*10*0
dòng3: A3*B3*(c3="Cam")=2*25*True=4*25*1

Sau khi chạy hết các dòng, EXCEL sẽ dùng hàm SUM để tính tổng kết quả tính được ở từng dòng=2*20*1+3*10*0
+4*25*1=140.

Vậy vẫn dùng được =SUM(A1:A3*B1:B3*(C1:C3="Cam")) với điều kiện nhấn tổ hợp phím CTRL+SHIFT+ENTER

Như vậy đến đây chúng ta có có 3 cách tính:

=SUMPRODUCT(A1:A3*B1:B3*(C1:C3="Cam")) nhấn phím ENTER
=SUM(IF(C1:C3="Cam",A1:A3*B1:B3,0)) nhấn phím CTRL+SHIFT+ENTER
=SUM(A1:A3*B1:B3*(C1:C3="Cam")) nhấn phím CTRL+SHIFT+ENTER

Chúng có thể kết hợp rất nhiều điều kiện vào trong hàm thông qua phép toán logic nhân-và- And, cộng – hoặc – Or.

*) Dùng hàm SUMPRODUCT hay dùng SUM kết hợp CTRL+SHIFT+ENTER đều cho ra được kết quả như nhau chính là do phép toán logic của bạn.
*) Hàm SUMPRODUCT chỉ có thể tính tổng theo nhiều điều kiện
*) Công thức mảng – Formula Array ngoài việc tính tổng có nhiều điều kiện còn làm rất nhiều phép tính khác do cách sử dụng hàm mà thôi.

Thân chào!

www.giaiphapexcel.com/diendan/threads/sumproduct-v%C3%A0-c%C3%B4ng-th%E1%BB%A9c-m%E1%BA%A3ng-ph%C3%A9p-t%C3%ADnh-c%C3%B3-nhi%E1%BB%81u-%C4%91i%E1%BB%81u-ki%E1%BB%87n.59/

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 86 ▥ 0
Quảng cáo

Bạn nên đọc

86 Responses

  1. hands says:

    Nhờ các anh chị giải đáp dùm trường hợp sau của tôi:
    Mình định dùng hàm Sumproduct bằng cách kết hợp 2 điều kiện phường của bệnh nhân và tháng (từ dữ liệu dạng dd/mm/yy của ngày mắc) để thống kê số bệnh nhân theo tháng của từng phường, kết quả sẽ nằm trong ô tháng tại sheet tungphuong.
    Cảm ơn các anh chị!

    Híc, các bạn đang làm bài này nên ấn Ctrl+F trong sheet BN tìm ngày 30/89/13 rồi sửa lại cho đúng. Chỉ vì cái lỗi này mà tối qua mình mất 2 tiếng đồng hồ mà không làm được bài này.
    Mình xin mạo muội chỉ ra cách làm này cho bạn nvuphi:
    Trước tiên bạn đặt tên cho các mảng như sau:
    DiaChi=BN!$I$5:$I$422
    ThoiGian=BN!$J$5:$J$422
    Tại ô C8 sheet TungPhuong nhập:

    =SUMPRODUCT((DiaChi="Hoàng Liệt")*(MONTH(ThoiGian)=1))

    Tương tự, tại ô D8 bạn nhập:

    =SUMPRODUCT((DiaChi="Hoàng Liệt")*(MONTH(ThoiGian)=2))

    E8 thì

    =SUMPRODUCT((DiaChi="Hoàng Liệt")*(MONTH(ThoiGian)=3))

  2. hands says:

    Hỏi về hàm Sumproduct

    Mình dùng hàm Sumproduct tính trong 1 vùng như $S$1:$S$5 có dữ liệu thì không xãy ra vấn đề gì. Nhưng khi thêm $S$1:$S$10 (từ S6 đến S10 không có dữ liệu) thì xãy ra #VALUE. dù đã format col S là Number nhưng vẫn không được.
    Mong các bạn giúp. Cảm ơn

    Các tham chiếu phải có cùng kích thược, ở đây bạn tới dòng 5, bạn thử sửa hết tới dòng 15 thử xem.
    độ dài các mảng phải bằng nhau chứ bạn

    =SUMPRODUCT(--($O$2:$O$[COLOR=#0000ff]5[/COLOR]=$B$1),--($P$2:$P$[COLOR=#0000cd]5[/COLOR]=$B$2),--($Q$2:$Q$[COLOR=#0000ff]5[/COLOR]=$C$2),--($R$2:$R$[COLOR=#0000ff]5[/COLOR]=E2),$S$2:$S$[COLOR=#ff0000]15[/COLOR])
  3. hands says:

    Cảm ơn Bạn Nguyễn Duy Tuân vì bài viết rất hay và bổ ích. Mình có bài này thật sự không biết dùng hàm gì để giải câu 2. Mong nhận được sự chỉ giáo của bạn. Bài tập mình gửi đính kèm file với tên de so 3 giúp mình giải bài này nhé.Chân thành cảm ơn. Bạn vui lòng gửi giúp mình qua mail này rất rất cảm ơn. mỉnhong2012@gmail.com

    Số tiền, E18:

    =SUMPRODUCT(($C$6:$C$12=LOOKUP("z",$C$18:C18))*($B$6:$B$12=D18),$D$6:$D$12)

    Kéo xuống, còn lại quy đổi ra VND chắc là bạn biết rồi.

  4. hands says:

    Mình bị lổi này, SUM nó không được tất cả cho mã sản phẩm, mà nó chỉ tính duy nhất 1 lần. Mong các bạn xem giúp

    SumìfS() cho nó lành

    Cảm ơn leonguyenz nhiều, cũng như trên có cách nào để viết VBA không bạn, do dữ liệu ở bảng nó tăng lên sẽ làm chậm. Thanks

    Bài này sửa lại ngày tháng cho đúng rồi dùng PivotTable cho nó khỏe, vừa dễ làm, dễ cập nhật, nhẹ file.

  5. hands says:

    Cảm ơn bạn đã giúp gần đúng với ý mình rồi bạn giúp mình một tý nữa nhé !
    mình muốn tự động cập nhật ngày và tháng khi đánh bất kỳ ngày và tháng bình thường nào bên sheet1 (VD :8/1 ->T1 ở sheet2 )sẽ tự động chuyển sang sheet2 tương ứng với cột ghi tắt bằng T1,T2,T3…T12 khi đó mình sort nó vẫn hiển thị đầy đủ bốn loại quả trong tháng đấy .
    THANKS BẠN!

    đổi mấy cái T1,T2,T3,T4 ra 1,2,3,4
    excel 2003 thì làm như vậy

    C3=SUMPRODUCT((Sheet1!$B$3:$B$11=B3)*(MONTH(Sheet1!$A$3:$A$11=A3))*(Sheet1!$C$3:$C$11))

    excel 2007 về sau thì làm như vậy (tôi làm trên máy 2003 nên chưa kiểm tra kết quả)

    C3SUMifs(Sheet1!$C$3:$C$11,Sheet1!$B$3:$B$11,B3,Sheet1!$A$3:$A$11,">="&DATE(2014,A3,1),Sheet1!$A$3:$A$11,"=<"&EOMONTH(DATE(2014,A3,1),0))

    – Với kiểu nhập liệu như bạn thì "còn lâu" mới có kết quả đúng.
    Lúc thì "táo", lúc thì "táo " (phía sau dư 1 khoảng trắng), nhìn bằng mắt thì giống nhau nhưng Excel không có "mắt".
    – Nhờ giúp công thức mà dữ liệu trong tháng 8-12, nhưng bảng kết quả tổng hợp lại T1,T2,T3. Người giúp phải "giúp luôn" chuyện tạo mẫu cho bạn?
    – 1 bên định dạng Date theo tiếng Anh "01-Aug", 1 bên lại là "T8", sao tạo rắc rối vậy?
    Tôi làm bằng Sumifs(), nó dài thòng nhưng dễ hiểu, dễ sửa, cột A sheet2 chỉ là các số 8,9,10…

  6. hands says:

    Mình có một ví dụ thắc mắc như sau:
    Giả sử mình có một day từ D7:D12 nhận 1 trong 3 chuỗi "C1","C2","C3".

    Giờ mình muốn đếm các ô có có ký tự C đứng đầu. Mình sử dụngcác công thức sau:
    =SUMPRODUCT((D7:D12="C*")*1)
    =SUMPRODUCT(((D7:D12="C1")+(D7:D12="C2")+(D7:D12="C3"))*1)
    ={SUM((D7:D12="C*")*1)}
    ={COUNT((D7:D12="C*")*1)}
    Tại sao lại có giá trị khác nhau nhỉ?

    Mấy chỗ có "C*" đều sai hết. Ký tự đại diện "*" chỉ dùng cho hàm SUMIF và COUNTIF
    Vậy phải sửa lại thành:

    =SUMPRODUCT(([COLOR=#ff0000]LEFT[/COLOR](D7:D12)="C")*1)

    hoặc dùng COUNIF:

    =COUNTIF(D7:D12,"C*")
  7. hands says:

    Nhờ các bác hướng dẫn giúp em trường hợp sum có điều kiện này với ạ.

    Điều kiện từ ô A -> G, cột H sum có điều kiện từ sheet Data.
    Nếu 1 trong các ô bỏ trống thì hiểu là ô đó không cần xét điều kiện.

    Em cám ơn ạ

    Thử công thức này đi bạn:
    =SUMPRODUCT((Data!$A$2:$A$20=A2)*(Data!$F$2:$F$20>=F2)*(Data!$F$2:$F$20<=G2)*Data!$G$2:$G$20)

    Dạ em thử thấy chưa như mong muốn. Ví dụ em xóa Ngày Kết Thúc ô G thì số lượng lại =0.
    Em đang muốn nếu xóa ngày kết thúc thì những hóa đơn nào có ngày bắt đầu lớn hơn 1/8 sẽ được tính (không quan tâm ngày kết thúc là gì)

    Ngày bắt đầu là rỗng thì lấy ngày nào?

    Ngày kết thúc rỗng thì lấy ngày nào?

    Cả 2 cùng rỗng thì làm sao?

    Bạn nên nói rõ hơn đi.

    Dạ nếu ngày bắt đầu rỗng thì lấy những ngày nhỏ hoặc bằng ngày kết thúc.
    Nếu ngày kết thúc rỗng thì lấy những ngày lớn hơn hoặc bằng ngày bắt đầu.
    Cả 2 ngày cùng rỗng thì chỉ cần lấy theo các điều kiện trước đó (Tên khách hàng, Model, Feature, Color), không quan tâm điều kiện ngày nữa.

    Tương tự các ô (Tên khách hàng, Model, Feature, Color): nếu 1 ô rỗng thì xem như không quan tâm ô đó, chỉ lấy theo điều kiện các ô còn lại không rỗng

    Thử với cái này xem:

    =SUMIFS(Data!$G$2:$G$20,Data!$A$2:$A$20,A2,Data!$B$2:$B$20,B2,Data!$C$2:$C$20,C2,Data!$D$2:$D$20,D2,Data!$E$2:$E$20,E2,Data!$F$2:$F$20,IF(F2,">=" & F2,"<=" & G2),Data!$F$2:$F$20,IF(G2,"<=" & G2,">=" & F2))

    Em cóp vào sao nó không ra ạ. Ngoài em cũng thử sumifs rồi nếu xóa rỗng 1 ô điều kiện là nó không ra gì hết -+*/

    Công thức tổng quát cho nó:

    =IF(AND(F2="",G2=""),SUMIFS(Data!$G$2:$G$20,Data!$A$2:$A$20,A2,Data!$B$2:$B$20,B2,Data!$C$2:$C$20,C2,Data!$D$2:$D$20,D2,Data!$E$2:$E$20,E2),SUMIFS(Data!$G$2:$G$20,Data!$A$2:$A$20,A2,Data!$B$2:$B$20,B2,Data!$C$2:$C$20,C2,Data!$D$2:$D$20,D2,Data!$E$2:$E$20,E2,Data!$F$2:$F$20,IF(F2,">="&F2,"<="&G2),Data!$F$2:$F$20,IF(G2,"<="&G2,">="&F2)))
    Sao bạn không dùng Pivot Table cho nó tiện, công thức mà cho từng ô như thế thì không thể làm hết đâu.

    đếm số cửa hiệu có mua hàng trong tháng

    Chào các anh chị
    Hiện tại mình đang gặp khó khăn trong việc đếm cửa hiệu có mua hàng ,năng suất theo từng phân mảng và ngành hàng
    vì khách hàng mua nhiều lần trong tháng và ngành hàng ,
    1.mục tiêu mình muốn biết có bao nhiêu CH theo mảng mua hàng ? và bao nhiêu hóa đơn ?(mình có đếm tay dựa vào pivot table có một số KQ)
    2. mình có chạy pivotatble và đếm tay ,nếu được các bạn chỉ mình dùng công thức Sumproduct
    3.Mình cũng rất muốn học VBA pivotTable nếu được xin được chỉ giúp
    Tran trong
    dat.nv

    cái này countifs được mà???

    D5=COUNTIFS(data!$C$3:$C$636,KQ!B5,data!$F$3:$F$636,">0")

    chào bạn ,
    Không dùng countifs được a, vì một Cữa hiệu mua hàng lập lại nhiều lần trong tháng và nhiều mặt hàng trong ngày vd: LP thì chỉ có 10 CH mua hàng thôi (countifs :20) tương tư hoá đơn (năng suất) mua hàng cũng vậy (Tổng cửa hiệu các Phan mảng :386 )và tương tự các CH mua hàng Dwny,HS,,,, cũng 386)
    Mình có chạy pivot table để so sánh dữ liệu ,thực tế do mình làm 12 tháng cho 1 chi nhánh và 12 chi nhánh nên mỗi lần dùng pivot và kéo đếm rất nhiều TG
    Rất mong các bạn có giúp hoạc vùng VBA
    Tran trong

  8. hands says:

    Em nghiên cứu mãi không ra. A/c nào giúp em công thức này với.

    Hàng hóa
    Số lượng
    Đơn giá
    Thành tiền

    Cam
    20
    1
    20

    Quýt
    6
    2
    12

    Cam1
    10
    1
    10

    Bút
    3
    5
    15

    Bút1
    2
    5
    10

    Tổng bút

    25

    Tổng hoa quả

    42

    Tổng cam
    30
    1
    30

    Em muốn tính tổng các loại hoa quả (không phân biệt cam, quýt…)
    và tổng các loại vật dụng không phân biệt chủng loại
    Ngoài ra nếu Em muốn lọc lấy 2 chữ cái đầu của hoa quả (cam hay cam1 chẳng hạn =ca), rồi tính tổng sao không được nhỉ. Không biết cần vận dụng hàm thế nào. Xin được giúp đỡ

    Nếu dữ liệu như mô tả của bạn thì chỉ cần sử dụng hàm SUMIF thôi, bạn xem file đính kèm nhé. Kết quả bạn mong muốn nằm ở vùng bôi màu vàng trong file.

    Vâng cảm ơn anh. Đúng rồi, em cứ loay hoay ở chỗ "*"

    Nếu em muốn thực hành bài này với Sumproduct thì có thể thay chỗ * đó thành hàm Left lấy số ký tự ra và so sánh với điều kiện em cần là OK, vì bài toán em không nói rõ phải dùng Sumproduct nên "anh" dùng SumIF cho nó thân thiện, hehehee

    Ban đầu chính là em dùng Hàm Sumproduct này, rồi dùng left lấy vài ký tự đầu thỏa đk thì nhân cột số lượng với đơn giá. Nhưng không biết sai chỗ nào mà loay hoay mãi với cái hàm left ấy. Xin cảm ơn anh chỉ bảo

    Nếu dùng Sumproduct để nhân số lượng với đơn giá để ra thành tiền với điều kiện như file thì em làm như sau :

    Tổng bút (công thức tại E9) : =SUMPRODUCT((LEFT($B$4:$B$8,3)="Bút")*($C$4:$C$8)*($D$4:$D$8))

    Tổng hoa quả (công thức tại E10) : =SUMPRODUCT((LEFT($B$4:$B$8,3)<>"Bút")*($C$4:$C$8)*($D$4:$D$8))

    Tổng cam ( công thức tại E11) : =SUMPRODUCT((LEFT($B$4:$B$8,2)="Ca")*($C$4:$C$8)*($D$4:$D$8))

    Tùy trường hợp em vận dụng nhé, công thức trên "anh" chỉ thao tác theo mô tả dữ liệu trong bài #1 của em thôi.

    Chúc năm mới vui vẻ 🙂
    Hehehe, Bé Còi sướng nhé, "SONG HỶ LÂM MÔN", khỏi phải đi Thái Lan & hưởng một luật mới ban hành ……+-+-+-++-+-+-++-+-+-+

  9. hands says:

    Nhờ ACE giúp CT sumproduct cho cột có điều kiện (cột động)

    Mình cài CT kèm hàm match nhưng không hiểu cách excel tính ntn mà ra số lạ quá

    =SUMPRODUCT((MATCH("Actual",$C$2:$N$2,0)*C3:N3))

    Ừ, cái hàm Sumproduct này tính….buồn cười thật

    =SUMPRODUCT(($C$2:$N$2="Actual")*C3:N3)

    Híc +-+-+-++-+-+-++-+-+-+

    Haha, thế thì cho em xin CT "không buồn cười" với ạ. Tại em không rành cách dùng sumproduct và match cho lắm

  10. hands says:

    Em muốn lọc số tiền theo tháng số tiền của từng bộ phận theo ví dụ sau mà em đặt công thức nó ra tổng các tháng luôn. Em k giỏi hàm sumproduct lắm, nhờ các bác sửa giùm em với ạ.

    h11 =sumproduct(($a$2:$a$39=$g11)*(month($c$2:$c$39)=h$10)*$e$2:$e$39)

    Quý Anh Chị giúp mình với, mình muốn đếm các số cách nhau bằng dấu phẩy "," như ví dụ bên dưới thì làm sau:

    cột A1: 2,3,4
    cột A2: 5,6
    cột A3: 12,13

    kết quả tổng đếm là 7

    Anh Chị chỉ giúp công thức với nhé

    =SUM(LEN(A1:A3)-LEN(SUBSTITUTE(A1:A3,",",""))+1)

    Kết thúc bằng ctrl+shift+enter

    Mình làm nhưng vẩn không được, Mình gửi file Bạn khuongvietphong xem dùm nhé, cám ơn nhiều

    Không được vì trong File có cả dầu . phân cách giữa các ngày chứ không phải chỉ có dấu , như ví dụ bạn đưa ra ban đầu

    Bạn sửa công thức thành:

    =SUM(LEN(E9:E11)-LEN(SUBSTITUTE(SUBSTITUTE(E9:E11,",",""),".",""))+1)

    Mình copy roi dán vào file gốc nhưng vẫn báo lỗi

    Paste công thức vào rồi, phải nhớ nhấn tổ hợp phím CTRL+SHIFT+ENTER

    vì đây là công thức mảng (^.^ ặc ặc ^.^ ) … nếu lần này mà không ra nữa thì mình bó tay nhé .

    Mình bó tay rồi không được, Bạn cho vào file lươn giúp mình nhé, cám ơn nhiều

    Khuongvietphong đã nhắc bạn

    Paste công thức vào rồi, phải nhớ nhấn tổ hợp phímCTRL+SHIFT+ENTER

    bạn có làm như Phong hướng dẫn?

    Mính làm được rồi, cám ơn Bạn Phong và bạn Hương nhiều nhé, cho mình hỏi thêm là nếu chèn thêm 1 dòng nữa và để trống thì công thức thế nào? hai bạn chỉ giúp mình nhé, cám ơn nhiều

    Nếu chèn thêm 1 dòng trống nữa thì công thức thế này:

    =SUM(LEN(E9:E12)-LEN(SUBSTITUTE(SUBSTITUTE(E9:E12,",",""),".",""))+1)-COUNTBLANK($E$9:$E$12)
  11. hands says:

    em có dùm hàm sumproduct để đếm số chuyến xe với điều kiện đúng tên là A và xe là C. Tuy nhiên em có 1 chuyến tên là B và xe là C với số thứ tự chuyến trùng với 1 trong số thứ tự chuyến tên A và xe C. Lúc này kết quả bị sai. Mong các cao nhân chỉ bảo giúp em với.

    Chỉ cần:
    H3=SUMPRODUCT((A3:A6=F3)*(C3:C6=G3))
    Hoặc đơn giản
    H3=COUNTIFS(A3:A6,F3,C3:C6,G3)

    Chúc bạn ngày vui.

    Cảm ơn bác đã phản hồi. lệnh chạy tốt ạ.
    Tuy nhiên, ngoài thỏa mãn điều kiện Tên và Xe, em muốn kiểm soát thêm 1 diều kiện nữa là đếm số chuyến nhưng loại những chuyến bị trùng ra như trong file em gửi bên dưới. nếu có 2 chuyến bị trùng thì kết quả nó phản ánh ko chính xác ạ.

    Mong các bác chỉ giáo giúp em.

    Vậy thì thử vầy:
    H3=SUMPRODUCT((A3:A6=F3)*(C3:C6=G3)/(COUNTIFS(B3:B6,B3:B6,A3:A6,A3:A6,C3:C6,C3:C6)))Enter

    Chúc bạn ngày vui.

    Quá nhanh quá nguy hiểm.

    Tuyệt vời bác ạ. Thỏa mãn đủ các tiêu chí mà em cần.

    Cảm ơn bác rất nhiều

  12. hands says:

    HG-L1-60*60-60SP006
    HG-L1-60*60-60SP306
    HG-L1-60*60-60SP306
    ASIAN-L1-60*60-6610
    ASIAN-L1-60*60-6632
    cho em hỏi em muốn lấy caasi chữ cái đầu thì dùng công thức nào a. , VD: HG , ASIAN

    =LEFT(A1,FIND("-",A1)-1)

    cho em hỏi muốn dò trùng mã hàng thì dùng công thức gì ạ

    Dò trùng bạn có thể sử dụng CF là ra mà, hoặc có thể dùng hàng index(match(match()))

  13. hands says:

    Gửi các anh chị trong diễn đàn mình có bảng công chấm theo tiếng muốn tổng hợp số giờ tăng ca trong tháng mà trong bảng công của mình có cả kiểu dữ liệu số và text nhờ cả nhà xem giúp

    Điều chỉnh:
    AM7=SUM(ISNUMBER(–G7:AK7)*(G7:AK7>8)*($G$6:$AK$6<>"CN")*(IFERROR(–G7:AK7,0)-8))Kết thúc bằng Ctrl+Shift+Enter, rồi fill xuống.

    Chúc bạn ngày vui.

    cám ơn bác đã giúp đỡ, tuy nhiên mình còn một vấn đề nữa là nếu trong tháng có một buổi nào đó mà công nhân chỉ làm một vài tiếng thì số công sẽ không chính xác, nhờ bác giúp đỡ xem số giờ lẻ đó quy ra công thì như thế nào !
    Trân trọng

    Điều chỉnh tiếp:
    AL7=COUNTIFS($G$6:$AK$6,"<>CN",$G7:$AK7,">=8")+ROUND(SUMIFS($G7:$AK7,$G$6:$AK$6,"<>CN",$G7:$AK7,"<8")/8,1)chỉ Enter, rồi fill xuống.

    Chúc bạn ngày vui.

    Xin chào bác, em có một vấn đề này muốn nhờ bác giup, trong file chấm công mà em có gửi và nhờ bác chỉ một vài công thức giờ em muốn nhờ bác giúp em tính xem ví dụ công nhân nghỉ nửa ngày ở các cột " nghỉ K", Nghỉ Ro, Nghỉ O trong file bác xem giúp em nhé

    Ghi nhận các trường hợp nghỉ nửa ngày bằng: Xx/2
    Ví dụ: K/2; Ro/2; Cô/2; Ô/2; P/2.
    Rồi điều chỉnh công thức trong các cột tương ứng:
    Ví dụ: =COUNTIF($H7:$AM7,"Ro*")COUNTIF($H7:$AM7,"Ro/2")/2
    Tương tự cho các cột còn lại.

    Chúc bạn ngày vui.

    Rất cám ơn bác đã nhiệt tình chia sẻ và giúp đỡ, em tính một mà chưa tính tới 2 bác ạ, khi mà tính được các ngày nghỉ thì số công của họ lại bị thay đổi bác ạ, bác làm giúp em công thức tính tổng công, số giờ tăng ca lại khi mà có " 0,5Ro" tham gia vào công thức ạ, Trân trọng

    Thay đổi điều chỉnh các ngày nghỉ theo ký tự, có hoặc không thêm "/2".
    AP7=SUM(COUNTIF($H7:$AM7,"Ro"&{"*","/2"})*{1,-0.5})
    AQ7=SUM(COUNTIF($H7:$AM7,"K"&{"*","/2"})*{1,-0.5})
    AR7=SUM(COUNTIF($H7:$AM7,"P"&{"*","/2"})*{1,-0.5})
    AS7=SUM(COUNTIF($H7:$AM7,"Cô"&{"*","/2"})*{1,-0.5})Enter fill xuống

    Ý bạn muốn nửa giờ còn lại tính vào công đi làm!?
    AM7=COUNTIFS($H$6:$AL$6,"<>CN",$H7:$AL7,">=8")+ROUND(SUMIFS($H7:$AL7,$H$6:$AL$6,"<>CN",$H7:$AL7,"<8")/8,1)+COUNTIF($H7:$AL7,"*/2")/2Enter fill xuống

    Bạn tham khảo file kèm.

    Chúc bạn ngày vui

  14. hands says:

    Các bác giúp em giải bài này với ạ, em đau đầu bao nhiêu ngày nay mà ko thể giải nổi ! Em cảm ơn các bác nhiều !

    Chờ lâu không thấy trả lời cũng có lý do đó: bài này thuộc chuyên đề SUMPRODUCT, có quá nhiều bài viết trong đó nên không thu hút sự chú ý. Lần sau nhớ mở topic mới sẽ dễ thu hút hơn.
    Dùng công thức này tại E2 rồi copy xuống:

    =LOOKUP(D2,{"tb2","tb3","tb4","tb5","tb6"},CHOOSE(LEN(A2)/2-COUNT(SEARCH($F$2:$F$18,A2))+1,{3,8,11,77,111},{0,0,0,3,77},{0,0,0,0,3},{0,0,0,0,0},{0,0,0,0,0}))

    Công thức mảng nên kết thúc bằng Ctrl-shift-enter thay vì enter nhé. Thấy có cặp móc nhọn {}bao quanh công thức là OK.

    Sơ ý. Cả

    Đúng là công thức đối với tôi hơi quá tầm, tôi đang nghiên cứu viết code nhưng chưa xong.

    Mình cũng muốn tầm sư học đạo bạn về code.
    Để bạn giaiphap ra giải pháp nhanh, mình chia sẽ thuật toán như sau:
    LEN(A2)/2-COUNT(SEARCH($F$2:$F$18,A2)) ra 0,1,2,3,4 đếm số lượng KHÔNG tìm thấy (gọi là n). Cộng thêm 1 để dùng CHOOSE
    Theo thứ tự:
    Nếu n+1 =1,2,3,4,5 trả về mảng tương ứng {3,8,11,77,111},{0,0,0,3,77},{0,0,0,0,3},{0,0,0,0,0},{0,0,0,0,0}
    Sau đó dùng =LOOKUP(D2,{"tb2","tb3","tb4","tb5","tb6"},CHOOSE(LEN(A2)/2-COUNT(SEARCH($F$2:$F$18,A2))+1,{3,8,11,77,111},{0,0,0,3,77},{0,0,0,0,3},{0,0,0,0,0},{0,0,0,0,0}))
    VD: dòng đầu tiên "th3", n+1=1 (n=0 do tìm thấy 3 cặp trùng), CHOOSE trả về mảng {3,8,11,77,111}, LOOKUP "th3" trả về 3

    Bác cho em hỏi thêm với ạ, Em làm theo hướng dẫn của bác đã được rồi nhưng khi em thay đổi giá trị trong ($F$2:$F$18) thì nó báo lỗi ạ. ví dụ A2 là 1a2b2a mà cột F em có giá trị a2,b2 thì sẽ bị lỗi ạ

    Lỗi là chắc rồi với dữ liệu không bất nhất. Trong ví dụ chỉ là 1ký số+1 ký tự, (1a,2b) bây giờ lại ngược lại (a1,b2). Bạn đưa hết các trường hợp vào và post lại xem sao

    Bác @befaint cho em hỏi là chạy nó thế nào ạ 🙁

    – Tải file về, cho phép chạy macro

    1696

  15. hands says:

    em cần tính số tiền phải nộp BHXH tự nguyện cho nhiều năm về sau, tối đa là 5 năm với công thức theo quy định là
    1697
    vậy có cách nào không cần lập biểu tính từng tháng một rồi tính tổng không ạ? e xin cám ơn

    =-PV(0.00628,2*12,3000000*0.22,,1)

    giúp e cái này luôn với
    1698

    Bạn dùng hàm này nha:
    =-FV(0.00826,120,3000000*0.22,,1)
    Mấy hàm này trong toán tài chánh cơ bản có hết, bạn nên chủ động tìm hiểu thì tốt hơn.
    Chúc bạn vui vẻ :p

  16. hands says:

    e tính tổng các cột theo điều kiện bao gồm cả dòng trống dùng hàm sumproduct, bị lỗi, các anh, chị có cách nào hay hơn chỉ giúp e với ạ

    Bạn xóa cell 90,91 là hết lỗi.

    cám ơn bạn đã hỗ trợ, mình thấy trong cell 90, 91 của mình k có dữ liệu gì mà, bạn giải thích giúp mình với

    2 cell đó không biết bạn thao tác copy dán từ đâu: nó đang là kiểu dữ liệu text chứ không phải Number: nên Sum không được.
    ( bạn thử dùng Istext() là thấy ak)
    Bạn bôi đen A90:C91 =>delete =>enter
    Tự động kết quả sẽ đúng
    🙂

  17. hands says:

    Trong các ứng dụng về công thức mãng mình được biết thì dạng công thức mãng dạng sum nhiều điều kiện là mình tâm đắc nhất vì cú pháp đơn giản, khi kết hợp với những hàm khác thì nó rất linh hoạt , giải quyết rất nhiều tình huống trước đây mình xử lý bằng hàm thông thường rất vất vã, hình như nó tính hơi lâu nhưng kết quả rất ưng ý
    Ví dụ
    1/ sum nhiều if – thay thế một macro rút trích rồi tính tổng
    vd:tính tiền thu được do bán mặt hàng là "sơn" thời gian từ 01/06/07 ( tungay) đến 30/06/07( denngay)
    {sum(if(ngay=>tungay,1,0)*if(ngay<=denngay,1,0)*if(mat_hang="son",1,0)*tien)}
    2/ Sumproduct nhiều if
    vd:tính tổng diện tích các thửa ruộng ấp A, xã B, Huyện C
    {sum(if(ap="a",1,0)*if(xa="b",1,0)*if(huyen="c",1,0)*dai*rong)}
    3/ count nhiều if
    vd: đếm số sv điểm trên trung bình là nam,lớp B, khoa C, Trường D
    {sum(if(diem>=5,1,0)*if(gioitinh="nam",1,0)*if(lop="b",1,0)*if(khoa="c",1,0)*if(truong="d",1,0)}
    4/max nhiều if
    vd:tự động nhảy số hóa đơn thứ mấy xuất cho đơn vị A, chứ không phải là STT hóa đơn, stt hóa đơn =max(stt_hd)
    {max(if(dv="a",1,0)*shd_dv)}
    5/ Vlookup_if
    vd: tìm trong vùng dữ liệu cột 1 mã máy bằng AAA, cột ngày di chuyển=gần nhất, xem nơi đến là nơi nào ( tìm giá trị cột noi_den )
    – kết hợp hàm findtwoconditions trên giaiphapexcel và hàm max_if trên

    Bạn ơi, có thể cho mình xin file exel ví dụ minh họa cho cá công thức trên được ko.
    mình làm thử rồi mà ko ra kết quả.
    Thanks bạn ^^

    Bạn tìm hiểu thử nha
    Chúc mọi người cuối tuần vui vẻ

  18. hands says:

    em muốn tính tổng có điều kiện cho khoảng 500 đầu mục công việc mà không biết dùng hàm nào cho nhanh. Các anh, chị có cách nào giúp em với ạ

    Dữ liệu của bạn gửi tuy tương đồng kết cấu, nhưng phần chi tiết yêu cầu "cộng phân khoản" không phức tạp như file theo đường link mà tôi đề cập trên.
    Do vậy, tôi thực hiện cho bạn cùng giải pháp nhưng đơn giản hơn chút, với một vài lưu ý như sau:

    • Về chi tiết cộng: bạn chỉ muốn phân nhỏ theo 3 mục (!?): Vật liệu, Nhân công, và Máy nhằm cộng Vùng theo từng tiêu chí đó để ra số tính toán cho "Vật liệu khác" và "Máy khác". Nếu đúng như vậy, thì bạn nên lưu ý chỗ các dòng bạn muốn cộng cho "Máy khác" phải đảm bảo có chữ "Máy" nằm ở cột Nội dung công việc, Vd: ô C25: Cần cẩu xích 10T, bạn phải thêm chữ "(Máy)" để báo cho công thức biết mà phân biệt. Tóm lại, nôm na hễ có "Nhân" và "Máy" thì hiểu là "Nhân công" và "Máy móc", các cái khác còn lại là "Vật liệu". Nếu bạn muốn chính xác hơn nữa thì bạn phải tạo thêm cột phân loại theo ba tiêu chí đó, nhưng hơi rườm rà tí, còn nếu như cách nêu trên là tạm ổn thì cứ việc áp dụng công thức dưới đây.
    • Cột A số thứ tự (STT) tuy nhìn nó rất đơn giản và bình thường, nhưng chính nhờ nó mà bạn phân Vùng được chính xác. Nên nó là cốt lõi cho công thức cộng tại cột H phía sau. Do bạn chỉ phân biệt 3 chỉ tiêu như trên, nên công thức chỉ đơn giản có "Mẹ" và "Con" thôi không cần "Cháu" 🙂
    • Công thức tại cột H tôi dùng SUM() và phân từng đoạn Vùng nhỏ và phù hợp với yêu cầu để không chiếm nhiều bộ nhớ máy. Nên nếu bạn có hơn "500 đầu mục" thì không lo nặng máy. Tôi cũng tính áp dụng Sumif(…,".??",….) như cách bên file hướng dẫn theo link kia, nhưng thấy nó kéo Vùng vào bộ nhớ hơi nhiều (với hơn 500 đầu mục), nên đã chọn giải pháp SUM(OFFSET()).

    Công thức áp dụng:
    Tính số thứ tự:

    A4=IF(COUNTA(B4:G4),IF(B4<>"",INT(IFERROR(--A3,0))+1,INT(--A3)&"."&TEXT(IFERROR(LOOKUP(4,{2,3}/(SEARCH({"Nhân","Máy"},C4)>0)),1),"00")),)

    Fill xuống.
    Tính Cộng Phân Vùng hoặc Tính Giá trị dòng Chi tiết:

    H4=IF(A4<>"",ROUND(IF(B4<>"",SUM(H5:OFFSET(H4,MATCH(1,INDEX(N(A4<>INT(--A4:A1000)),),)-2,)),PRODUCT(E4,F4,G4)*IF(OR(C4={"Vật liệu khác","Máy khác"}),SUM(OFFSET($H$3,MATCH(1,INDEX(N(A4=$A$3:A3),),)-1,):H3)%,1)),),"")

    Fill xuống.
    Xem file đính kèm.

    Chúc bạn học tập vui với GPE.
    hihi ^o^

    Sao vẫn không được vậy ạ. Em toàn thấy VALUE thôi

    Với code như thế thì bạn phải có thiết lập trong CP giống như người viết code cho bạn. Tức code phụ thuộc vào thiết lập trong CP. Nếu thiết lập của bạn khác đi thì sẽ có VALUE 😀
    Bạn hãy nhìn kỹ công thức.

    A4=IF(COUNTA(B4:G4),IF(B4<>"",INT(IFERROR(--A3,0))+1,INT(--A3)&"."&TEXT(IFERROR(LOOKUP(4,{2,3}/(SEARCH({"Nhân","Máy"},C4)>0)),1),"00")),)

    Tức trong cột A giá trị dòng dưới sẽ được tính theo dòng trên. Chắc chắn giá trị trong cột A có nhiều số "lẻ", vd. A5. Và nó có dạng TEXT với quyết định cứng nhắc là có dấu chấm. Vd. A5 = "1.01"

    Trên máy người ta thì dấu chấm là dấu thập phân nên với

    A6 =IF(COUNTA(B6:G6),IF(B6<>"",INT(IFERROR(--A5,0))+1,INT(--A5)&"."&TEXT(IFERROR(LOOKUP(4,{23}/(SEARCH({"Nhân""Máy"},C6)>0)),1),"00")),)

    thì không có lỗi vì INT(–A5) không gây ra lỗi.

    Bây giờ bạn mở tập tin nhưng bạn có dấu phẩy là dấu thập phân nên INT(–A5) = INT(–"1.01") sẽ gây lỗi. Nỗ lực convert chuỗi có dấu chấm thành số trên máy có thiết lập dấu phẩy là dấu thập phân chắc chắn không thành công, chắc chắn gây ra lỗi.

    A6 lỗi thì A7 cũng lỗi, mà A7 lỗi thì A8 cũng lỗi, vân vân và phân vân.

    Cột A có lỗi thì nhiều giá trị trong cột H cũng sẽ lỗi.
    ———————-
    Bạn rút kinh nghiệm lần sau. Phải mô tả dữ liệu để biết có cấui trúc thế nào. Không phải ai cũng thích đoán mò.

    Tôi hiểu như sau, nếu hiểu không đúng thì hãy đừng đọc tiếp. Vì mọi code tôi viết đều chỉ đúng với giả thiết dữ liệu cụ thể.

    Dòng "Vật liệu khác" và "Máy khác" không nhất thiết phải có.

    Nếu có "Vật liệu khác" thì ở cột H là tổng các giá trị ở cột H tính từ dòng dưới dòng có số thứ tự đến dòng trên dòng có "Vật liệu khác", được nhân với cột E

    Nếu có dòng "Máy khác" thì dòng "Nhân công …" sẽ có "công" ở cột D, và lúc đó thì ở cột H là tổng các giá trị ở cột H tính từ dòng dưới dòng "công" đến dòng trên dòng có "Máy khác", được nhân với cột E và G

    Nếu đúng như trên tôi hiểu thì công thức cho H4

    =IF(B4<>"",SUM(H5:INDEX(H$1:H$1000,IFERROR(MATCH("*",B5:B$1000,0)+ROW(B4)-1,LOOKUP("zzz",C5:C$1000,ROW(C5:C$1000))))),IF(C4="Vật liệu khác",E4*SUM(INDEX(H$1:H4,LOOKUP("zzz",B$1:B3,ROW(B$1:B3))+1):H3)/100,IF(C4="Máy khác",E4*G4*SUM(INDEX(H$1:H4,LOOKUP(2,1/(D$1:D4="công"),ROW(D$1:D4))+1):H3)/100,E4*F4*G4)))

    copy, kéo công thức xuống dưới.

    Tôi giả thiết là có không quá 1000 dòng dữ liệu. Nếu không bao giờ quá vd. 100 thì sửa 1000 trong công thức thành 100.

    Trong công thức có dùng Iferror() nếu xài phiên bản trước 2010 thì sửa cùng lúc luôn.

    Nếu như lỗi #Value như bài #603 đề cập do định dạng trong Control Panel về dấu phân cách hàng đơn vị và hàng ngàn…, thì bạn có thể thay đổi dấu "." trong công thức A4 thành dấu "," như sau:

    A4=IF(COUNTA(B4:G4);IF(B4<>"";INT(IFERROR(--A3;0))+1;INT(--A3)&","&TEXT(IFERROR(LOOKUP(4;{2;3}/(SEARCH({"Nhân";"Máy"};C4)>0));1);"00"));)

    Fill xuống là xong.

    Tôi có gửi thêm cách điền ký tự "_" thay cho dấu "." hay "," thì không ngại bạn định dạng ".," trong Control Panel nữa, và công thức tổng ngắn gọn hơn để bạn tham khảo:

    A4=IF(COUNTA(B4:G4),IF(B4<>"",MAX($A$3:A3)+1,MAX($A$3:A3)&"_"&TEXT(IFERROR(LOOKUP(4,{2,3}/(SEARCH({"Nhân","Máy"},C4)>0)),1),"00")),)

    Fill xuống

    H4=IF(A4<>"",ROUND(IF(B4<>"",SUMIF(A5:$A$1000,A4&"_??",H5:$H$1000),PRODUCT(E4,F4,G4)*IF(OR(C4={"Vật liệu khác","Máy khác"}),SUMIF($A$3:A3,A4,$H$3:H3)%,1)),),"")

    Fill xuống. Bạn cũng có thể thay "_??" trong SUMIF(A5:$A$1000,A4&"_??",H5:$H$1000) thành "_*", nhưng tôi thì thích "_??" hơn.
    Xem file đính kèm nhen! hihi ^o^

    Đại ca ơi, em hỏi ngu tí?! Em thêm 4 cột giữa cột G và cột H, khi đó cột "thành tiền" là cột L và em áp dụng công thức của Đại ca thì kết quả cho = 0. Lý do tại sao vậy ạ?

    Bạn nên download file tại bài #604, sau đó muốn chèn thêm 4 cột trắng nữa vào giữa G và H, thì nên chọn nguyên cột H rồi nhấn Ctrl+"+" (dấu "+" của bàn phím số bên tay phải) nhấn thêm 3 lần như vậy nữa thì công thức không bị biến đổi.

    Lúc đó công thức tại cột L sau khi đã chèn 4 cột thành như sau:
    H4=IF(A4<>"",ROUND(IF(B4<>"",SUMIF(A5:$A$1000,A4&"_??",L5:$L$1000),PRODUCT(E4,F4,G4)*IF(OR(C4={"Vật liệu khác","Máy khác"}),SUMIF($A$3:A3,A4,$L$3:L3)%,1)),),"")

    hihi ^o^

    Vì file cũ của em có thêm 4 cột giữa cột H và cột G nên áp dụng công thức của đại ca không được

    • Hoặc bạn đưa file thật của bạn lên
    • Hoặc chép công thức ở trên bài #606 về

    hihi ^o^

    file của em đây thưa Đại ca

    Tôi làm cho bạn hai cách, tùy ý bạn chọn:

    • Cách có bộ đếm STT ở cột A (Sheet "Chiết tính"): mục đích để phân Vùng cho sheet này, nhưng cũng dành cho về sau bạn có báo cáo nào khác cần tổng hợp trên các mục tổng chi tiết, Ví dụ: Mã; Nội dung; Khối lượng; Chi phí Vật tư; Chi phí Nhân công; Chi phí Máy móc; Tổng Chi phí. Giống dạng báo cáo theo đường link: [URL='https://www.giaiphapexcel.com/diendan/threads/ph%C3%A2n-c%C3%A1c-v%C3%B9ng-%C4%91%E1%BB%83-c%E1%BB%99ng-ho%E1%BA%B7c-t%C3%ADnh-to%C3%A1n-tr%E1%BB%8B-gi%C3%A1-theo-d%C3%B2ng.133787/#post-847886']https://www.giaiphapexcel.com/dienda…nh-toán-trị-giá-theo-dòng.133787/#post-847886
    • Cách không cần bộ đếm STT ở cột A (Sheet "Chiết tính (2)"): chỉ dành Công Phân Vùng hoặc tính dòng chi tiết cho Sheet "Chiết tính (2)" mà thôi, không phục vụ cho các báo cáo khác nữa.
      L4=IF(B4<>"",SUM(L5:OFFSET(L4,IFERROR(MATCH("*",B5:B$1000,)-1,COUNTA(C5:C$1000)),)),PRODUCT(E4,F4,G4)*IF(OR(C4={"Vật liệu khác"
      ,"Máy khác"}),SUM(OFFSET(L$3,LOOKUP(2,1/IF(LEFT(C4)="M",INDEX(D$4:D4="công",),INDEX(B$4:B4<>"",)),ROW($1:1))+1,):L3)%,1))

      Chỉ Enter, Fill xuống.

    Xem file kèm. hihi ^o^

  19. hands says:

    Có thể dùng hàm sumproduct mà trong đó có công thức có điều kiện không bạn, mình muốn đếm bao nhiêu complaint PF10 ở cột G và complaint đó nằm trong tháng 5 thì dùng sumproduct sao được nhỉ?

    =SUMPRODUCT((MONTH($C$2:$C$720)=5)*($G$2:$G$720="PF10"))

    tính tổng có điều kiện và ngày tháng.
    mình muốn tính tổng tiền của từng khách hàng đến hạn phải trả theo tháng như đính kèm.
    nhờ các bạn xem giúp nhé.
    cám ơn các bạn nhiều,

    =SUMPRODUCT(($E$4:$E$134="VD")*MONTH($T$4:$T$134=8),$AA$4:$AA$134)
  20. hands says:

    cám ơn bạn Huonglien1901.
    nhưng mình làm y mọi cách mà kết quả ko đúng bạn ạ, bạn xem dùm mình file thử xem công thức mình còn sót chỗ nào ko nhé.

    Công thức như trên thì tính cả tháng 8/2017 và tháng 8/2018 (nếu có).
    Có bao nhiêu điều kiện thì bạn vẫn dùng SumIfs() được mà.

  21. hands says:

    Chào các bác,
    Hiện mình đang gặp vấn đề về cách tính tổng có điều kiện theo lũy kế.
    Mỗi ngày mình có 30 máy, sản xuất 7 sản phẩm. Mình cần tính tổng số máy sẽ bị thiếu vật tư theo từng ngày. Các bac nhìn file đính kèm dễ hiểu hơn mình trình bày suông trên đây cũng hơi khó hiểu.
    Mong các bác trợ giúp cho em.
    Thanks.

    Hổng biết có đúng theo ý bạn chưa ?
    Số máy ngưng hoạt động
    O7=ROUNDUP((M7-N7)/B7,0)

  22. hands says:

    Cảm ơn bạn thuhuonglee, nhưng mình cần tính số ở các ô như: E2, G2, I2, K2.
    Số máy ngưng hoạt động theo từng ngày.

    Bạn thử thêm cột O chứa kết quả tổng kết "Số máy thiếu vật tư":

    O7=SUMPRODUCT(($N7<=SUMIF(OFFSET($F$5,,,,{1,3,5,7}),"SL",OFFSET($F7,,,,{1,3,5,7})))*N(OFFSET($E7,,{0,2,4,6})))

    Enter fill xuống.

    Muốn theo dõi số lượng máy thiếu theo từng ngày trả kết quả tại các ô: E2, G2, I2, K2, bạn làm như sau:

    E2=SUMPRODUCT(INDEX($N$7:$N$13<=SUMIF(OFFSET($F$5,,,,{1,3,5,7}),"SL",OFFSET($F$7,ROW(1:7)-1,,,{1,3,5,7})),,COUNTA($E$4:E$4))*E$7:E$13)

    Copy cho các ô còn lại.

    Xem file kèm.
    Thân.

    Thanks Phan Thế Hiệp,
    Đúng thứ mình cần rồi bạn, nhưng vẫn không hiểu cấu trúc của hàm OFFSET cho lắm, trước giờ mình chưa áp dụng hàm này.

    Công thức:
    SUMIF( OFFSET($F$5,,,,{1,3,5,7}), "SL" , OFFSET($F$7,ROW(1:7)-1,,,{1,3,5,7}) )

    giống Sumif( Vùng so, Tiêu chí so, Vùng cộng) bình thường, nhưng nhờ Mảng {1,3,5,7} mà hàm Offset() sẽ nhảy qua cách cột, để làm nhiệm vụ cộng dồn số liệu, ví dụ:

    • OFFSET($F$5,,,,{1,3,5,7}): chỉ lấy các gía trị tại các ô: bắt đầu từ F5, nhảy qua 2 cột (3-1=2) lấy đến ô H5, cứ vậy lấy giá trị đến các ô J5 và L5 để so sánh với tiêu chí "SL". Bạn có thể hình dung cách thức nó hoạt động như sau: cột đầu tiên F là Sumif(F5:F5,"SL"…..), cột H là Sumif(F5:H5,"SL"…..), cột J là Sumif(F5:J5,"SL"…..), cột L là Sumif(F5:L5,"SL"…..)
    • OFFSET($F$7,ROW(1:7)-1,,,{1,3,5,7}): Tương tự với cách thức trên, nó đứng từ cột F7, với giá trị đầu tiên là 1, thì nó lấy giá trị tại chỗ là =12, nhảy qua 2 cột nữa (1+2=3) tức lấy giá trị ô H7 (vì H5="SL") là =4, nó cộng dồn 12+4=16, rồi tiếp tục 5 (1+2+2=5) tức qua cột J7 là =6, nó lại cộng dồn 16+6=22, sau cùng là nhảy đến ô L7 là =8, cộng dồn 22+8=30
    • Kế tiếp nó lấy vật tư tồn tại cột N7 = 14 đem so với mảng mà nó vừa cộng dồn là {12,16,22,30}, tức 14<={12,16,22,30} <=> trả về Mảng {False, True, True, True} hay {0,1,1,1} (True=1; False=0)
    • Hàm OFFSET($F$7,ROW(1:7)-1,,,{1,3,5,7}) không những lấy cách cột mà nó còn chạy xuống cho hết 7 hàng như dữ liệu của bạn có. Nó sẽ tạo ra "Mảng hai chiều" gồm: hàng x cột: chứa số cộng dồn theo từng hàng dữ liệu và có 4 cột. Gom chung lại cả công thức bạn có thể hình dung nó hoạt động theo hướng sau:
    • Dòng 7: Sumif(F5:F5,"SL",F7:F7), Sumif(F5:H5,"SL",F7:H7), Sumif(F5:J5,"SL",F7:J7), Sumif(F5:L5,"SL",F7:L7)
    • Dòng 8: Sumif(F5:F5,"SL",F8:F8), Sumif(F5:H5,"SL",F8:H8), Sumif(F5:J5,"SL",F8:J8), Sumif(F5:L5,"SL",F8:L8)
    • Dòng 9: Sumif(F5:F5,"SL",F9:F9), Sumif(F5:H5,"SL",F9:H9), Sumif(F5:J5,"SL",F9:J9), Sumif(F5:L5,"SL",F9:L9)
    • ……….Đến dòng 13:….
    • Tức kết quả sẽ ra 1 Mảng như sau:
    • 1710

    [*]Sau đó nó đem Mảng này ra so với cột Tồn vật tư N để tạo ra Mảng hai chiều chứa giá trị thỏa hay không cột nào bị thiếu vật tư.

    • 1709

    [*]Hàm Index(Mảng, ,'Thứ tự cột cần lấy') sẽ lấy ra Mảng cột, Vd: hình dạng cột F là {0;0;0;0;1;0;0} tức dòng 5 có giá trị 1 báo dòng đó bị thiếu vật tư. Tùy theo Thứ tự cột cần lấy, Ví dụ đứng tại F là 1, qua cột H là 2….., mà lấy ra Mảng điều kiện phù hợp (xem các cột 0,1 như hình trên).
    [*]Cuối cùng, nó nhân 2 Mảng: 'Mảng điều kiện vừa tìm ra trên' x 'Cột số máy tương ứng', Ví dụ: cột F gồm hai Mảng: {0;0;0;0;1;0;0}*{6;2;5;4;5;2;6} –> kết quả cuối ={0;0;0;0;5;0;0}
    [*]Sumproduct() làm nhiệm vụ cộng lại các số trong Mảng kết quả trên, tức = 5.

    Chúc bạn học tập vui với anh em GPE.
    Thân

  23. hands says:

    Các bạn thân mến giúp mình kéo dữ liệu từ Sheet 2 sang với nhé, cám ơn nhiều lắm. Mình đang mò mẫm mà không ra.

    Thử:

    D4=SUMIFS(Data!$F$2:$F$13,Data!$B$2:$B$13,$B4,Data!$E$2:$E$13,"17Q"&COLUMN(A$1))

    Enter, fill qua phải, rồi copy cả dòng xuống.
    Nếu muốn linh động về niên độ tính thuế thì cập nhật tại ô nào đó Vd: A1=01/01/2017, và thực hiện công thức trong file kèm.

    Thân.
    p/s: Bạn chắc đang làm công tác quản lý thuế tại Chi Cục à!?

    Rất hay và cũng rất…khó hehe, nhưng thôi giải quyết được việc của mình là ok rồi, cám ơn anh nhiều nhé, vâng em làm thuế ở Chi cục ạ. Cho em hỏi thêm tẹo, theo anh thì cách nào hay hơn và muốn tìm hiểu thì cách nào dễ hiểu hơn ạ?

    Tùy theo bạn thấy cái nào tiện cho công việc của bạn:

    D4=SUMIFS(Data!$F$2:$F$13,Data!$B$2:$B$13,$B4,Data!$E$2:$E$13,"17Q"&COLUMN(A$1))

    • Công thức này gọn dễ hiểu hơn, nhưng khi qua năm mới (Vd: 2018), bạn phải sửa lại công thức tại "17Q" thành "18Q". Tương tự cho các niên độ sau nữa.

    D4=SUMIFS(Data!$F$2:$F$13,Data!$B$2:$B$13,$B4,Data!$E$2:$E$13,TEXT($A$1,"yy")&"Q"&RIGHT(D$3))

    • Công thức này bạn chỉ cần điều chỉnh niên độ mới tại A1 (Vd: gõ 01/01/2018, tương tự cho các niên độ sau) thì không cần chỉnh công thức.
    • TEXT($A$1,"yy"): Ra kết quả là 2 số đuôi của năm do định dạng "yy" (Vd: 01/01/2017 ra 17)
    • RIGHT(D$3): Lấy bên phải của ô D3 ra 1 ký tự, tức số của các Quý: 1,2,3,4
    • TEXT($A$1,"yy")&"Q"&RIGHT(D$3) ghép các kết quả chung với chữ "Q" thành các chuỗi: Vd: "17Q1" hay "17Q2" "17Q3" "17Q4"

    Thân.

  24. hands says:

    Chào các bạn,
    Mình cần tìm tổng số lượng theo từng size của các đơn hàng. Chi tiết đơn hàng ở Sheet1, giá trị cần tính ở cột Total sheet2.
    Hiện tại, mình đang dùng hàm như sau:

    =SUMPRODUCT(SWITCH([@Size],"36",PO[36],"38",PO[38],"40",PO[40],"42",PO[42],"44",PO[44],"46",PO[46],"48",PO[48],"XS",PO[XS],"S",PO[S],"M",PO[M],"L",PO[L],"XL",PO[XL],"2XL",PO[2XL],"3XL",PO[3XL])*(PO[MODEL]=[@Model]))

    Nhưng hàm này quá dài và chỉ những máy sử dụng Office 365 mới dùng được. Các bạn giúp mình thay hàm trên bằng 1 hàm khác đơn giản hơn.
    Xin cảm ơn!

    Thử:

    C2=SUMIF(Sheet1!$B$1:$B$1000,$A2,OFFSET(Sheet1!$D$1:$D$1000,,MATCH($B2,Sheet1!$E$1:$Z$1,)))

    Thân.

    Cảm ơn bạn! Mình vẫn chưa hiểu hàm OFFSET trong hàm. Bạn có thể giải thích giúp mình được không?

    OFFSET(Sheet1!$D$1:$D$1000,,MATCH($B2,Sheet1!$E$1:$Z$1,))
    Sẽ lấy cột size thích hợp với B2 (Vd: là size "XS"), thì Offset() sẽ trả về Vùng dữ liệu với địa chỉ là L1: L1000, để cung cấp Vùng cộng cho SUMIF(), tức có thể hiểu lúc sau cùng công thức có dạng là:
    =SUMIF(Sheet1!$B$1:$B$1000,$A2,Sheet1!$L$1:$L$1000)

    Vận hành của Offset() như sau: đứng tại mốc Sheet1!$D$1:$D$1000, sử dụng Macth() để tìm size "XS" có cột 'thứ mấy' trong Vùng Sheet1!$E$1:$Z$1, khi tìm được nó trả về stt cột, tức cách D1 bao nhiêu cột nhằm cung cấp thông số 'cột' cho Offset() để nhảy đến lấy cả vùng đó.

    Cũng có thể thay thế bằng =OFFSET(Sheet1!$D$1,,MATCH($B2,Sheet1!$E$1:$Z$1,1000)) cũng cùng ý nghĩa.

    Thêm cách nữa

    =SUMPRODUCT((Sheet1!$B$2:$B$1000=$A2)*(Sheet1!$E$1:$T$1=$B2),Sheet1!$E$2:$T$1000)

    Dùng hàm này là phù hợp với 'chủ đề' ở đây, tuy nhiên tôi muốn lưu ý với bạn dùng Sumproduct() là tập họp 1 mảng 2 chiều, do đó nó chiếm khá nhiều bộ nhớ. Nếu dữ liệu càng lớn, thì bạn sẽ thấy nó làm trì trệ tốc độ xử lý của máy tính.
    Bạn thử hình dung như sau với công thức của bạn có khoảng 50 dòng x 14 cột = 700 ô dữ liệu, nếu dòng dữ liệu khoảng 1000 (như công thức Sumif() tôi đưa Vùng vào) thì nó vào khoảng 14.000 ô dữ liệu chiếm trong bộ nhớ.

    Với Sumif() do dữ liệu được ghi nhận bởi Vùng (vùng so khớp, và vùng cộng đã ghi nhận vào ô hiện hữu trên bảng tính, ước lượng cao lắm cũng thao tác trong khoảng 2000 ô mà thôi), sau khi xác định rõ Vùng thì máy tính xử lý theo dòng dữ liệu nên nó ít chiếm bộ nhớ của máy tính, vì vậy tốc độ xử lý sẽ nhanh hơn.

    Cũng là một dịp chia sẻ để biết cái lợi và hại của Sumproduct().

    Thân.

    Tôi nghĩ không nên bắt chước ai cả. Nếu không dùng các hàm volatile mà công thức không phức tạp hơn thì không nên dùng các hàm volatile. Chỉ dùng khi hết cách – tức khi cách khác thì phức tạp hơn nhiều.
    Dùng volatile thì các công thức luôn được tính lại mặc dù tham chiếu không đổi.

    Đây là tôi nói về nguyên tắc, về tập cho mình một thói quen

    =SUMIF(Sheet1!$B$1:$B$1000,$A2,INDEX(Sheet1!$E$1:$Z$1000,,MATCH($B2,Sheet1!$E$1:$Z$1,0)))
  25. hands says:

    Mọi người giúp mình file này với ạ.
    Mình muốn cộng số lượng, theo điều kiện loại giày (thấp cổ, cao cổ, cổ lỡ, đế cao) và theo kích thước hộp giày, nhóm size.

    Chi tiết trong File đính kèm.

    Cảm ơn cả nhà

    Sheet "THĐH":

    • Cột H: không hiểu bạn lấy kết quả từ đâu ra nên không làm.
    • Từ Cột O đến AE:
      O4=IF($E4=LOOKUP("zzz",$O$1:O$1),SUMPRODUCT((MATCH(ĐH!$K$2:$AQ$2*1,IFERROR(MID(O$2,{0,1,4},2)+{0,0,1},))=2)*OFFSET(ĐH!$K$2:$AQ$2,LOOKUP(2,1/($F4=ĐH!$D$3:$D$500)/($G4=ĐH!$E$3:$E$500),ROW($1:$500)),)),)
      Hoặc
      O4=IF($E4=LOOKUP("zzz",$O$1:O$1),SUMIFS(OFFSET(ĐH!$K$2:$AQ$2,LOOKUP(2,1/($F4=ĐH!$D$3:$D$500)/($G4=ĐH!$E$3:$E$500),ROW($1:$500)),),ĐH!$K$2:$AQ$2,">="&LEFT(O$2,2),ĐH!$K$2:$AQ$2,"<="&RIGHT(O$2,2)),)

      Enter, fill sang phải đến AE, rồi fill cả hàng xuống.

    Thân

  26. hands says:

    Hi các bác. Mình đang có vấn đề cần giải quyết.

    Mình cần thống kê ở sheet "Theo dõi".
    – Ở cell B2 mình cần biết NV bán được cho bao nhiêu khách hàng, nhưng công thức đang chạy sai. Ngoài ra nếu ở ô này mình cần biết số KH nv này bán được (Tổng doanh số KH >= 10 đồng) thì làm như thế nào?
    – Ở ô C2 mình cần theo dõi số tiền mặt hàng trọng điểm 1 bán được (Mặt hàng trọng điểm 1 gồm có: Mặt hàng trọng điểm 1A và Mặt hàng trọng điểm 1B trong sheet "Dữ liệu nền".

    1715

    Ai biết chỉ dùm mình hoặc cho mình ví dụ giống giống để mình xem 😀

    Thanks all.

    Nếu "Hàng trọng điểm" được phân loại là 1 và 2 (nói chung nhỏ hơn 10), thử:

    1/ Theo dõi số khách hàng:

    B2=COUNT(1/(MATCH(Input!$B$2:$B$100,IF(Input!$A$2:$A$100=$A2,Input!$B$2:$B$100),)=ROW($1:$100)))

    Kết thúc bằng Ctrl+Shift+Enter, rồi fill xuống.

    2/ Theo dõi "Hàng trọng điểm":

    C2=COUNT(SEARCH(C$1,VLOOKUP(T(IF((Input!$A$2:$A$31=$A2)*(Input!$D$2:$D$31="Bán"),Input!$C$2:$C$31)),Database!$A$2:$D$11,4,)))

    Kết thúc bằng Ctrl+Shift+Enter, copy qua phải 1 cột, rồi fill xuống.
    Xem file kèm.

    Thân

    Thanks bác Phạm Thế Hiệp.

    1. Đếm số KH mình đã làm được, nhưng nếu thòng điều kiện (Ví dụ như KH phải có Doanh số lớn hơn 10 mới được tính là 1 KH phát sinh doanh số) thì mình chưa làm được.

    2. Theo dõi "Hàng trọng điểm" theo công thức bạn:

    C2=COUNT(SEARCH(C$1,VLOOKUP(T(IF((Input!$A$2:$A$31=$A2)*(Input!$D$2:$D$31="Bán"),Input!$C$2:$C$31)),Database!$A$2:$D$11,4,)))

    thì nó sẽ sai khi Mã SP là 1 số, theo mình hiểu là trong dòng lệnh T(….) bên trên.
    Cho mình hỏi dòng T bên trên nó có cần thiết không?

    Nếu tôi hiểu ý và không nhầm lẫn 😀 thì …
    1. Tôi đổi tên sheet thành csdl và nguon.
    2. Công thức cho B2

    =SUM(--(FREQUENCY(IF(nguon!$A$2:$A$200=A2;MATCH(nguon!$B$2:$B$200;nguon!$B$2:$B$200;0));ROW($1:$200))>0))

    Kết thúc bằng Ctrl+Shift+Enter, và copy xuống dưới.

    Công thức cho C2

    =SUM((nguon!$A$2:$A$31=$A2)*COUNTIFS(csdl!$A$2:$A$11;nguon!$C$2:$C$31;csdl!$D$2:$D$11;C$1&"?")*nguon!$E$2:$E$31)

    Kết thúc bằng Ctrl+Shift+Enter, và copy sang phải tới cột D rồi xuống dưới.

    Thanks bác batman1.

    Cái mục "2." mình làm theo bác thì được.

    Còn mục "1." mình vẫn vướng theo điều kiện doanh số nhập của KH 😀

    Tức chỉ KH mua >= 10 mới được đeo huy hiệu?

    1. Hoặc con bò mộng cho B2

    =SUM(--(FREQUENCY(IF(nguon!$A$2:$A$200=A2,IF(SUMIFS(nguon!$E$2:$E$200,nguon!$A$2:$A$200,nguon!$A$2:$A$200,nguon!$B$2:$B$200,nguon!$B$2:$B$200)>=10,MATCH(nguon!$B$2:$B$200,nguon!$B$2:$B$200,0))),ROW($1:$200))>0))

    Kết thúc bằng Ctrl+Shift+Enter

    2. Hoặc cột phụ.
    Công thức cho nguon!F2

    =IF(SUMIFS($E$2:$E$200,$A$2:$A$200,A2,$B$2:$B$200,B2)>=10,MATCH(nguon!$B$2:$B$200,nguon!$B$2:$B$200,0))

    Enter và copy xuống đến F200

    Công thức cho B2

    =SUM(--(FREQUENCY(IF(nguon!$A$2:$A$200=A2,nguon!$F$2:$F$200),ROW($1:$200))>0))

    Kết thúc bằng Ctrl+Shift+Enter

    Tôi chỉ nhìn lướt qua kết quả cho dữ liệu hiện có trong tập tin của bạn. Tôi không test nhiều trường hợp vì vấn đề là của bạn.

    1. Đếm số KH mình đã làm được, nhưng nếu thòng điều kiện (Ví dụ như KH phải có Doanh số lớn hơn 10 mới được tính là 1 KH phát sinh doanh số) thì mình chưa làm được.

    1/ Doanh số lớn hơn 10: thì thêm 1 chút công thức vào phía sau công thức cũ, như dười đây:

    =COUNT(1/(MATCH(Input!$B$2:$B$100,IF(Input!$A$2:$A$100=$A3,Input!$B$2:$B$100),)=ROW($1:$100))/(SUMIFS(Input!$E$2:$E$31,Input!$A$2:$A$31,Input!$A$2:$A$31,Input!$B$2:$B$31,Input!$B$2:$B$31)>10))

    Sau này, nếu có thêm điều kiện gì khác thì cứ nối vào tương tự.

    2. Theo dõi "Hàng trọng điểm" theo công thức bạn:
    Thì nó sẽ sai khi Mã SP là 1 số, theo mình hiểu là trong dòng lệnh T(….) bên trên.
    Cho mình hỏi dòng T bên trên nó có cần thiết không?

    Hàm T() dành để hiện những giá trị chuỗi của vùng trong đối số của nó. Thường thì các mã SP không dùng để cộng trừ nhân chia, nên bạn nên định dạng là chuỗi (text), ngay cả nếu nó mang dạng số, Vd như số CMND chẳng hạn, bạn cũng nên định dạng cột đó về 'text'.

    Riêng trong bài này, nếu Mã SP của bạn là dạng "số" thì bạn thay thế hàm T() bằng hàm N().

    Xem file kèm.

    Thân

  27. hands says:

    Em có bài toán Sumproduct, em đã tính được nhưng công thức hơi dài, các anh xem có thể thu gọn hoặc có cách tính nào đơn giản không. Xin cám ơn.

    Thử:

    C13=SUM(SUMIF($B$9:$B$12,"*"&{1;2;3},$C$9:$C$12))

    Enter.

    Thân

    Ý của em là dùng dữ liệu thôi, không phải dùng kết quả của những nhóm xe

    Vậy, dùng thử:

    • Nhóm 1,2,3 =SUMPRODUCT($C$5:$J$5,$C$6:$J$6*ISNUMBER(MATCH(–LEFT($C$4:$J$4),{1,2,3},)))
    • Nhóm 2 và 4=SUMPRODUCT($C$5:$J$5,$C$6:$J$6*ISNUMBER(MATCH(–LEFT($C$4:$J$4),{2,4},)))
    • Nhóm 1,3,5=SUMPRODUCT($C$5:$J$5,$C$6:$J$6*ISNUMBER(MATCH(–LEFT($C$4:$J$4),{1,3,5},)))

    Thân

    Cám ơn anh rất nhiều, nếu thay (1,2,3) thành ký tự thì mình thêm dấu "" đúng không anh

    Nếu lấy ký tự chuỗi thì:
    Thay vì = MATCH(LEFT($C$4:$J$4),{1,2,3},)
    Điều chỉnh thành = MATCH( LEFT($C$4:$J$4) , {"1","2","3"}, )

    Thân

  28. hands says:

    Chào ACE,

    Mình có CT như file đính kèm, nhờ các cao thủ chỉ giáo làm sao để ra kết quả ở D10. Vì CT ở C10 ra không đúng ý mình.

    Thử sửa công thức tại C9:

    =SUMPRODUCT(SUMIFS($C$2:$C$7,$B$2:$B$7,TRANSPOSE(OFFSET($G$1,MATCH($B9,$F$2:$F$4,0),,COUNTIF($F$2:$F$4,B9))),$A$2:$A$7,$A$9:$A$10))

    Ctrl+Shift+Enter, kéo xuống C10.

    Em được bạn bày thêm cách này:

    C9=SUMPRODUCT(--(LOOKUP($B$2:$B$7,$G$2:$G$4,$F$2:$F$4)=$B9),$C$2:$C$7)

    Nếu theo công thức bạn viết ở ô D10 thì tôi hiểu rằng bạn không cần điều kiện ở ô A9, A10.
    Như vậy thì có thể không xét điều kiện tại A9, A10 và dùng Sumif

    C9=SUM(SUMIF($B$2:$B$7,IF($F$2:$F$4=B9,$G$2:$G$4),$C$2:$C$7))

    Ctrl + Shift + Enter, Fill xuống

    Do em sơ xuất đấy bác, thực ra e muốn có xét cột A nhưng lúc đưa file lên em lại quên tính đến cột A. Nhưng vô tình em lại học được cách sumifs kết hợp transpose. Cách của bác @Phan Thế Hiệp giúp em tận dụng được cả 2 phương án.

    Khi cần xét thêm cột A thì em thay hàm transpose là xong

    Em rất cám ơn các bác ạ.

    1720

    Tôi lại hiểu có xét và không xét Vùng A9:A10 như trong file kèm chứ! 🙂

    Thân

    CT của bác em hiểu là sum(sumifs của A9,Sumifs của A10)=190, bác bỏ sum ra thì là 100 ấy, và nếu xét thì 100 mới đúng bác ạ

    C9=SUMIFS($C$2:$C$7,$A$2:$A$7,TRANSPOSE($A$9:$A$10),$B$2:$B$7,IF(B9=$F$2:$F$4,$G$2:$G$4))

    1722

  29. hands says:

    các anh cho em hỏi có các nào cộng tổng với tình huống thế này:

    a

    b

    1

    01/02/2013

    8T3→001

    2

    02/02/2013

    8T3→001

    3

    03/02/2013

    8T3→001

    4

    04/02/2013

    8T3→004

    tổng

    nếu cộng thủ công thì tổng là 7.
    Cách của em làm là em phải làm ra thêm 1 cột nữa để lấy số sau đó mới cộng lại. Vậy em muốn hỏi là có công thức nào cộng mà không cần phải thêm cột ko ạ.
    thanks

    Dùng:
    =SUMPRODUCT(–RIGHT(C2:C5,3)) Enter.

    Thân

    Bác cho em hỏi — có nghĩa gì ạ? em rất hay thấy mà ko hiểu

    Dựa vào toán học:

    • -(-a) = –a = a
    • Vd:
    • =-TEXT(125,"0")=-125
    • =–TEXT(125,"0")=125

    Vận dụng điều này để "ép" a đang là dạng "chuỗi số" (Vd: chuỗi '12345) về thành số tính toán (12,345).
    Có nhiều cách đưa "chuỗi số" về dạng số, gồm:

    • VALUE( "chuỗi số" a )
    • "chuỗi số" a nhân hay chia 1 (*1 ; /1), hoặc cộng hay trừ (+0 ; -0)
    • "chuỗi số" a cộng/trừ/nhân/chia/căn/lũy thừa với một "chuỗi số" khác.
    • Vd: =TEXT(10,"0")^TEXT(3,"0")=1000

    Thân

  30. hands says:

    Chào các bạn. Tôi cần tính tổng theo nhiều điều kiện như file đính kèm, cũng đã sử dụng công thức mảng nhưng không ra được kết quả như mong muốn. Rất mong anh em giúp đỡ. Xin cảm ơn trước. Nội dung cần trợ giúp đã ghi rõ trong file.

    Bạn giải thích cách tính toán chi tiết thêm:

    • Ngày 08/04/19 tại sao là 3
    • Ngày 22/04/19 tại sao là 8
    • Ngày 06/05/19 tại sao là 10
    • Ngày 29/07/19 tại sao là 7

    Thân

    Ngày 08/04/19 tại sao là 3 –>Em cần 3 người làm trong 47 ngày (cột số ngày LV) bắt đầu từ ngày 8/4 đến ngày 31/5. Do đó tất cả các ngày làm việc trong khoảng thời gian này đều bố trí 3 người.

    • Ngày 22/04/19 tại sao là 8 — Em cộng tất cả các đầu việc lại, tương tự cho các ngày khác.
    • Ngày 06/05/19 tại sao là 10
    • Ngày 29/07/19 tại sao là 7

    À! tôi hiểu ý bạn rồi, phải xem cả bảng thời gian "bắt đầu – kết thúc" và vì nó không sắp thứ tự theo ngày nên ban đầu tôi nhầm chút.
    Thử công thức sau:

    H19=SUMPRODUCT((MMULT(COUNTIF(H$18,">="&$E$3:$F$8+{0,1}),{1;1})=1)*INDEX($B$3:$D$8,,MATCH($G19,$B$2:$D$2,)))

    Enter, fill qua phải, rồi copy cả dòng xuống

    Thân

    Bạn trả lời chung chung quá đi!
    Ví dụ: Ngày 22/04/19: tôi lấy B3=3 (từ ngày 08/04 đến mốc này), cộng B4=3 (từ ngày 20/04 đến mốc này) chỉ bằng 6 thôi mà???? sao bạn lại tính 8. —> Em tính nháp cho phần Nhân công 1 trong phần bên trên đó ạ. Ngày 22/4 cần 8 người cho các đầu việc sau: Mục 1 =3 (ô i3), Mục 2 = 3 (ô i4) Mục 4 bằng 2 (ô i6) như vậy sum lại ngày đó là cần 8 người
    1724
    .

    Giải thích càng chi tiết thì người giải mới biết bạn muốn tính như thế nào là đúng chứ!?

    Thân

    Đã giải cho bạn ở trên rồi đó.

    Thân

    Vâng, cảm ơn bác, quá hay ạ. Em lại phải nghiên cứu thêm cái hàm MMULT này mới được.

    Đây, cho bạn "ngâm cứu" về "người đẹp" ấy. 🙂

    Thân

  31. hands says:

    Nếu bạn học toán tuyến tính thì sẽ hiểu được các quy luật của các phép tính trên ma trận, còn không học thì hơi bị nhứt cái đầu đó

    Quá khó ấy ạ. Tạm thời em copy cái công thức này để giải quyết công việc cái đã.

    bạn dùng thử: =sumifs(C1:C10,A1:A10,"X",B1:B10,"Y")

    Chào các bạn.
    Tôi có vấn đề mới cần hỗ trợ chỗ tính thời gian lũy kế cho các hạng mục khác nhau, đã sử dụng công thức mảng nhưng kết quả không như ý muốn, rất mong anh chị em giúp đỡ. Chi tiêt vấn đề được nêu trong file đính kèm. Cảm ơn và chúc cả nhà cuối tuần vui vẻ.

    Vấn đề quá hay! Truy lục ngày trùng theo từng mảng, nhưng với số giờ khác nhau, rồi tổng cộng cho 6 ngày, hoặc tính cho cả quá trình hoạt động.
    Công thức tính số giờ của ngày trong tuần của bạn chưa đúng, nên kết quả sai.

    Nhưng sáng nay tôi bận rồi, bạn chịu khó chờ nha, sẽ có nhiều anh em hỗ trợ bạn nhiều cách thú vị.

    Chúc bạn ngày vui

    Vâng, cảm ơn bác. Vấn đề là nó sai ở chỗ nào đó nên kết quả mới không đúng ạ.

    Gãi đúng chỗ ngứa của thầy rồi 😀
    Mà em thấy không ổn ở chỗ thời gian cột B, C so không cố định, tính toán kiểu quy hồi, gần với bài tính thời gian định cư liên tục 5 năm của anh huuthangbd 🙂

    Không cố định có thể hiểu là mình có một hợp đồng gồm nhiều gói, mỗi gói có thời gian thực hiện khác nhau và số giờ công cho phép khác nhau nhưng tổng thời gian thực hiện và tổng số giờ được phép sử dụng thì cố định.

    Bài này excel công thức thường giải quyết tốt và dễ hiểu, nhưng phải bảng phụ
    Khó ở đây là do ta muốn công thức khủng, mà khủng là tự làm khó rồi
    Công thức khủng đó chỉ trông ngắn gọn, còn tốc độ tính toán thì chắc sẽ mệt.
    Vẫn muốn ngắn gọn thì nên dùng VBA

    Bài này em nghĩ là dạng khó.
    Dữ liệu có trùng ngày, tuần (cột B, C), không biết chọn dòng nào phù hợp (đưa ra 1 tập hợp số, cột E), phân bổ tập hợp số đó thỏa điều kiện thời gian tăng dần (theo tuần) và tổng bằng số cho trước (được tính ra ở F11).

    Cứ tính từng Hoạt động theo tuần (cộng dồn), thì được bảng các thời gian tuần cho các hoạt động, tổng cột, rồi tổng tất cả là được kết quả mong muốn.

    Tính từng hoạt động theo tuần (liệt kê) thì dễ dàng rồi xét khoảng thời gian hiệu theo số ngày trong tuần (min, max ngày) thì bạn tính tốt dễ dàng.

    ==> cần 1 bảng phụ

    Em nghĩ cũng không quá khó với các bác đâu ạ. Nếu thử kéo dài thời gian kết thúc ra đến ngày 7/2/20 thì sai số theo em tính chỉ là 0.26%. Đấy là phải tính thêm số giờ theo ngày và theo tuần rồi mới cộng lũy kế lại.
    Vấn đề em muốn là chỉ cần dựa vào cột F (Số giờ cho phép) và các cột C và D để rải vào các ngày từ lúc bắt đầu đến lúc kết thúc theo dạng lũy kế như ở dòng số 4 thôi và mục tiêu cuối cùng là đường biểu đồ vừa lên đúng với số giờ cho phép.
    1728

    Xem file kèm
    Với File thứ 2 thì bạn tự làm theo, và lưu ý kéo ngày đúng tuần +7 (file 2 phải kéo đến tháng 3)

    Sáng nhìn vội, nên cũng hình dung trong đầu y vậy. Nhưng vừa về xem lại thì có lẽ nó nhẹ nhàng hơn tí!
    Chắc là công thức này:

    I4=SUMPRODUCT((I1+COLUMN($A:$F)-1>=$B$2:$B$10)*(I1+COLUMN($A:$F)-1<=$C$2:$C$10)*$E$2:$E$10)

    Chỉ Enter, rồi fill qua phải.

    Thân

    Chắc không phải rùi, dòng 4 là s
    Vậy, cộng với ô đằng trước chắc "hợp với dáng em".

    Cảm ơn anh @HieuCD.

    I4=SUMPRODUCT((I1+COLUMN($A:$F)-1>=$B$2:$B$10)*(I1+COLUMN($A:$F)-1<=$C$2:$C$10)*$E$2:$E$10)+N(H4)
    Enter, rồi fill qua phải.

    Chúc anh ngày vui

    Cảm ơn các bác nhiều. Tối muộn vẫn hỗ trợ anh em. Chúc các bác một tuần mới nhiều niềm vui và hạnh phúc.
    Hay quá bác ạ. Vấn đề phát sinh là dữ liệu của em có thể thay đổi nên các cột cũng vì thế thay đổi theo. Với "COLUMN($A:$F)" như này em thêm hoặc bớt cột ở trong khoảng đó đều cho kết quả bị sai. Em đã thừ thay thế bằng
    =SUMPRODUCT((J1+{1,2,3,4,5,6}-1>=$A$2:$A$10)*(J1+{1,2,3,4,5,6}-1<=$B$2:$B$10)*$F$2:$F$10)+N(I5) thì có thể thay đổi số cột thoải mái. Vậy mình có thể thay thế dạng COLUMN($A:$F) này bằng dạng khác để không bị ảnh hưởng bởi số cột trong đó không ạ.
    Một vấn đề nhỏ nữa là trong ví dụ này thì ngày cuối cùng kết thúc là 19/12 nhưng kết quả tính đến ngày 16/12 đã hết khối lượng rồi do đó 3 ngày sau không được tính ạ.1732

    Nếu bạn muốn tùy biến "Ngày bất kỳ", thì tôi đưa ra các trường hợp sau:

    • Phải xử lý "Ngày" bạn ghi nhận vào hàng 1 (I1: U1) là ngày bất kỳ trong tuần. Ví dụ: I1 có thể bắt đầu từ Chủ nhật (29/09/2019). Công thức sẽ loại ra các Ngày Chủ nhật cho bạn, đồng thời chỉ lấy những ngày có trong khoảng thời gian "Ngày bắt đầu – Ngày kết thúc" của bảng C2: D10
    • Công thức sẽ lấy các ngày trong khoảng từ giá trị "Ngày" của cột đang thực hiện cho đến "Nhỏ" hơn "Ngày" của cột liền kế sau. Vd: công thức tại I4 thì nó lấy các ngày "thỏa điều kiện" từ ngày 30/09 đến ngày 05/10 (như dữ liệu trong file kèm thể hiện tại I1 và J1). Nhờ điều này, bạn không cần phải buộc giữa các cột là 6 ngày cố định, mà có thể tăng giảm tùy thích, (do đó không còn ngại Column(A:F))
    • Nếu cột "Ngày" liền kế sau trống rỗng, thì chỉ lấy duy nhất "Ngày" của cột mà công thức đang thực hiện.

    Do các yếu tố trên, nên công thức sẽ dài hơn:

    I4=SUM((TRANSPOSE(IFERROR(ROW(INDIRECT(I$1&":"&J$1-1)),I$1)*(WEEKDAY(IFERROR(ROW(INDIRECT(I$1&":"&J$1-1)),I$1))>1))>=$B$2:$B$10)*(TRANSPOSE(IFERROR(ROW(INDIRECT(I$1&":"&J$1-1)),I$1)*(WEEKDAY(IFERROR(ROW(INDIRECT(I$1&":"&J$1-1)),I$1))>1))<=$C$2:$C$10)*$E$2:$E$10)+N(H4)

    Kết thúc bằng Ctrl+Shift+Enter.

    Thân

    Cảm ơn bác rất nhiều. Em sẽ nghiên cứu thêm để áp dụng cho thuận tiện nhất ạ. Chúc bác và gia đình sức khỏe và hạnh phúc.

    Vừa bị "Hạn", lại vừa được "Phúc", thì kể như "huề vốn"
    A1= -9 + 9 = 0

    Vậy, nên ghi "Chúc huề vốn" 🙂
    Thân

  32. hands says:

    Chào anh Hiệp và các anh. Tình cờ em copy được đoạn công thức này áp vào thấy kết quả cũng đúng

    =SUMPRODUCT(IFERROR(IF(I$1<$B$2:$B$10,0,IF(I$1>=$C$2:$C$10,1,(I$1-$B$2:$B$10)/($C$2:$C$10-$B$2:$B$10+1)))*$F$2:$F$10,0)) Ctr+Shift+Enter
    Có thể là đầu bài ban đầu của em chưa đủ rõ ràng về yêu cầu nên đôi khi lại làm khó người giúp đỡ.
    Chia sẻ lên đây không có ý gì khác ngoài việc học hỏi thêm vì em không hiểu đoạn này "(I$1-$B$2:$B$10)/($C$2:$C$10-$B$2:$B$10+1)" và em nghĩ đây chính là chìa khóa để giải quyết vấn đề. Các anh chị giải thích giùm em được không ạ.

    Tuy hai kết quả tính đến ngày 19/12/2019 là giống nhau, nhưng giải thuật của hai bài khác nhau:

    • Công thức của bạn: Kết quả đúng là đương nhiên! vì công thức đó là công thức tính tỉ lệ %: "Số ngày thể hiện" từ I1: U1 so với "Tổng số ngày thực hiện" các hoạt động (từ 1 đến 10 hoạt động trên hai cột B và C). Cụ thể:
    • Nó tính các "Ngày" theo mốc I1: U1:
    • Nếu nhỏ hơn các "Ngày" ở cột B, thì không tính (giá trị 0)
    • Nếu lớn hơn các "Ngày" ở cột B:
    • nếu lớn hơn hoặc bằng các "Ngày" ở cột C: thì tính là 100% "Số giờ cho phép (tức 1 x F2: F10),
    • Ngược lại, và nếu nhỏ hơn các "Ngày" ở cột C: thì tính tỉ lệ: (I$1-$B$2:$B$10) / ($C$2:$C$10-$B$2:$B$10+1), với:
    • (I$1-$B$2:$B$10): "Tổng các ngày" mà I1 > "Các ngày tại cột B", tức lấy "Tổng số ngày" mà các ngày từ lúc "Bắt đầu" đến "Ngày mốc I1" có bao nhiêu ngày, chia cho "Tổng số ngày thực tế (kể cả ngày CN)" theo từng hoạt động".
    • Ví dụ: J1= 07/10/2019, vậy chỉ có 1 dòng của "Hoạt động 1" có ngày "Bắt đầu" nhỏ hơn J1: 30/09/2019; Lấy 07/10/2019 – 30/09/2019 được 7 ngày, lấy 7 ngày chia cho "Tổng số ngày thực tế (kể cả ngày CN) của từng hoạt động", là mảng con số cố định từ công thức: ($C$2:$C$10-$B$2:$B$10+1)={73,55,51,33,33,33,28,34,23} (Xem công thức D13: D21 giải thích ý nghĩa). Do chỉ có dòng "Hoạt động 1" thỏa điều kiện nên nó lấy 7 ngày chia cho 73 ngày của dòng hoạt động đó= 9.59% x 1.309 (Số giờ cho phép cột F) = 125,5205 giờ thực hiện.

    [*]Tóm lại, nó tính tỉ lệ: "Tổng số ngày thực hiện" đến "Ngày" nhỏ hơn mốc tại dòng 1 (I1: U1), chia cho "Tổng số ngày thực tế (kể cả ngày CN)" theo từng hoạt động", rồi nhân tỉ lệ đó với "Số giờ cho phép".

    Tôi có vấn đề mới cần hỗ trợ chỗ tính thời gian lũy kế cho các hạng mục khác nhau

    [*]Công thức của tôi dựa vào yêu cầu của bạn ghi:và theo công thức bạn tính đính kèm trong file bạn gửi: cứ 1 cột là 6 ngày kể từ "Mốc" đang đứng. Tức công thức tính ra số ngày thực hiện (trừ ngày CN) từ "Mốc" đang đứng cho đến ngày nhỏ hơn "Mốc liền kề tiếp cột sau", rồi cộng lũy kế các ngày đã thực hiện.
    [*]Nói tóm lại, cái khác nhau của hai cách tính là:

    • Công thức bạn sưu tầm tính "Tỉ lệ" các "Ngày trước cho đến "Mốc" yêu cầu (tại dòng 1 I1: U1)" so với "Ngày thực tế theo dòng hoạt động" (Công thức tính Ngày thụt lùi so với ngày Mốc)
    • Công thức của tôi phân định "Số Ngày thực hiện" từ "Mốc yêu cầu này" đến "Mốc yêu cầu kế tiếp". (Công thức tính Ngày tiến tới so với ngày Mốc)

    Thân

    Cảm ơn anh nhiều, vậy em mới nói là có thể do cách diễn dải câu hỏi không rõ ràng ạ. Chúc anh ngày vui nhé.

  33. hands says:

    Em chào anh chị, em muốn biết sâu thêm về hàm sumproduct nên đã lội lại từ đầu topic này nhưng có công thức này ở page 18 em nghĩ mãi mà không hiểu được huhu . có ai có thể giải thích cho em logic ở đây không ạ. em có note lại trong file

    Công thức bạn hỏi đâu có liên quan gì đến hàm Sumproduct()!?
    Tuy nhiên, có thể giúp bạn tìm hiểu: đó là công thức "Đếm loại trùng theo điều kiện".
    Bạn có thể dùng công thức sau ngắn gọn và dễ hiểu hơn:

    M2=COUNT(1/(MATCH($B$2:$B$10,IF($A$2:$A$10=L2,$B$2:$B$10),)=ROW($1:$10)))

    Kết thúc bằng Ctrl+Shift+Enter.

    Bạn tham khảo file kèm, có giải thích chi tiết kết quả từng phần hành công thức.

    Ôi em hiểu rồi ạ:(( . Thank pro đã chỉ giáo chi tiết. hic hic em thấy hàm ROW và hàm offset được sử dụng trong mảng rất là ảo diệu, nhưng em k biết logic chung để sử dụng nó. em thấy hàm offset được áp dụng để " trượt" dòng theo chiều dọc trên mảng vậy ạ. còn row thì tạo ra 1 mảng theo cột dọc để check điều kiện, có đúng không ạ. e nghĩ là học được hướng tư duy thì mình sẽ tiến bộ nhanh hơn .Trình độ có hạn nên diễn đạt lung tung, mong cả nhà chỉ giáo ạ :((

    Thân

  34. hands says:

    Chào các anh em Excel Master, mình là thành viên mới, đang mày mò tìm hiểu để học thêm Excel.
    Nhờ mọi người giúp giùm mình cái này với:
    Mình có cột A là các giá trị a, b, c, x, y, z và có lặp lại. Cột B, C, D là giá trị 0,1,2. Mình cần
    1) count các dòng ở cột A (ko tính các dòng lặp lại). Vd: mình có 100 dòng, 30 dòng lặp lại giá trị thì công thức sẽ cho ra kết quả 70.
    2) tương tự câu 1 nhưng thêm điều kiện là phải thoả các điều kiện ở cột B, C, D.
    Vd: mình countifs cả B, C, D = 0, thì ra được 50. Nhưng trong 50 dòng này có 10 dòng trùng nhau ở cột A, vì vậy kết quả mình cần là 40.
    Mình đọc thấy Sumproduct có vẻ giải quyết được nhưng thật sự không biết phải làm sao.
    Cảm ơn mọi người rất nhiều.

    Tham khảo các công thức file đính kèm tại:
    http://www.giaiphapexcel.com/diendan/threads/nh%E1%BB%9D-t%C3%ACm-l%E1%BB%97i-trong-c%C3%B4ng-th%E1%BB%A9c-%C4%91%E1%BA%BFm-lo%E1%BA%A1i-b%E1%BB%8F-%C4%91%E1%BA%BFm-tr%C3%B9ng.138038/#post-883771
    1. Hàm Countifs, ví dụ:
    COUNTIFS(A1:A10,"01",B1:B10,"<>"&"**")

    2. Hàm Sumproduct, ví dụ:
    SUMPRODUCT((A1:A10="01")*(B1:B10<>"**"))

    => ** hàm Sumproduct ko hiểu được như hàm Countifs: phương thức nào diễn giải ** trong hàm Sumproduct nhờ các bạn chỉ giúp mình ?
    Thân

    Bạn cho ví dụ kết quả các phép tính mình xem thử?

    Ý mình muốn hỏi chỗ ** trong hàm SUMPRODUCT diễn giải như thế nào để hàm hiểu được.
    Ví dụ: B1:B10 <> "Cam" thì hàm OK còn B1:B10 <> "*Cam*" thì hàm NOK
    Chỗ * đại diện cho các ký tự trước và sau "Cam"

    Hàm Sumproduct không dùng được ký tự thay thế "*", "?"

    Ý bạn đó là có giải pháp thay thế thì dùng hàm search và iserror kết hợp là được.

    Mình có làm cái vd cụ thể như thế này
    1736
    =SUMPRODUCT($B$2:$B$13,$C$2:$C$13*($A$2:$A$13="Cam")*($D$2:$D$13<>"*loại 1*"))

    mình muốn diễn giải chỗ chỉ lấy loại 2 còn tất cả loại 1 ko lấy: dùng hàm search và iserror như thế nào nhờ bạn chỉ giúp.

    =SUMPRODUCT(ISERR(FIND(1,$D$2:$D$500))*$B$2:$B$500*$C$2:$C$500)

  35. hands says:

    E nhờ bác giúp sửa lại công thức hàm pro này với. Cụ thể như sau:
    1/nếu e để dòng 13 thì ô F14 nó ko hiện kết quả, nếu xóa dòng 13 đi nó mới cho lên kết quả.
    2/ Nếu e dùng data lọc dữ liệu tại cột E thì dùng công thức gì kết hợp với công thức Pro tại F14 theo dữ liệu lọc được không

    Công thức khá phức tạp, đặt tên cho gọn
    SoPhieu = 'vât tư Chùa'!$F$4:$F$13
    DK =SUBTOTAL(109,OFFSET(SoPhieu,ROW(INDIRECT("1:"&ROWS(SoPhieu)))-1,,1,))

    F14 =SUM(--(FREQUENCY(IF(DK>0,MATCH(DK,DK,0),""),ROW(INDIRECT("1:"&ROWS(SoPhieu))))>0))

    Ctrl+Shift+Enter

    Tóm lại là để tính gì vậy anh ?

    Đếm loại trùng, có xét lọc dữ liệu bằng filter

    Em cũng không rõ đề lắm, công thức sau được không nhỉ?

    =SUM(COUNTIF($F$4:$F$13,$F$4:$F$13&"")*SUBTOTAL(3,OFFSET($A$3,ROW($A$4:$A$13)-ROW($A$3),)))

    Không đơn giản được :p

    Thử lại :eek::eek:

    =COUNT(1/(MATCH(F4:F13,IF(SUBTOTAL(3,OFFSET(A3,ROW(A4:A13)-ROW(A3),)),F4:F13),)=ROW(A4:A13)-ROW(A3)))

    Công thức hay quá, rút gọn lại

    =COUNT(1/(MATCH(F4:F13&"",SUBTOTAL(9,OFFSET(F3,ROW(1:10),))&"",)=ROW(1:10)))
  36. hands says:

    Bạn ơi mình áp dụng công thức này sao không ra kết quả ạ? Chỉ giúp mình với nhé.
    Cảm ơn nhiều ạ.

    Hình như công thức đó áp dụng với dạng số, trường hợp của bạn thì thử thế này xem sao.

    Đúng như ý mình rồi nè. Cảm ơn bạn nhiều lắm!

    Các bạn có thể chỉ tiếp giúp mình cách liệt kê ra những "Tên sách" ở cột C lặp lại, kèm theo số lần lặp lại, và giá trị hàng ngang tương ứng ở cột D, E của những lần lặp lại đó. Vẫn sử dụng Filter để lọc và tính những dòng hiển thị thôi ạ.

    Mình xin cảm ơn!

    Với nội dung bổ sung của bạn thì nên đăng bài mới, giúp cho những thành viên khác có nhu cầu tương tự nội dung thêm của bạn dễ tìm kiếm và tham khảo.

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm