Đăng ký học Excel và VBA cùng GPE tháng 11 - TPHCM

Đăng ký học Excel và phân tích số liệu cùng GPE tháng 12 - TPHCM

Mua sách "VBA trong Excel - Cải thiện và tăng tốc" tái bản

11 Ví dụ hay về hàm SUMPRODUCT

Thảo luận trong 'Hàm và công thức Excel' bắt đầu bởi DOSNET, 13 Tháng một 2009.

  1. DOSNET

    DOSNET Thành viên danh dự

    Giới thiệu với các bạn 11 Ví dụ hay để hiểu thêm về cách dùng hàm Sumproduct, nhân tiện nhờ các bạn dịch giúp ra tiếng Việt giúp.
    Nguồn

     
  2. DOSNET

    DOSNET Thành viên danh dự

    Tiếp tục từ VD 7 đến VD 11.

     
    Lần chỉnh sửa cuối: 13 Tháng một 2009
  3. haonlh

    haonlh Thành viên tích cực

    Công thức cuối cùng của ví dụ 11 là:
    =SUMPRODUCT(--(SUBTOTAL(3,OFFSET(INDEX($A$1:$A$100,1,1),ROW($A$1 :$A$100)-ROW(INDEX($A$1:$A$100,1,1)),0))=1),--($B$1:$B$100="North"),$A$1:$A$10)
    Có thể (và nên) thay mọi 2 dấu -- bằng 1 dấu - ; vì sẽ có 2 dãy đổi dấu nên tích của chúng không đổi.
    Nếu có lẻ cặp 2 dấu -- thì kết quả âm. Thêm dấu - và đầu công thức để đổi dấu nó.
    Tôi cũng chưa thử công thức trên, nhưng nên thay như vậy để giảm thời gian tính: mỗi dấu - sẽ đổi dấu 100 số (theo công thức trên), 4 dấu là 400 lần đổi dấu. Tức là thời gian để đổi dấu giảm 2 lần.
     
  4. cadafi

    cadafi New Style! New Life! Staff Member Super Moderator

    Tôi lại nghĩ khác, "--" chẳng qua nó là một phép toán chứ không phải là ký hiệu để đổi dấu, và thông thường người ta thường dùng *1 hoặc -- hoặc value() hoặc ^1 để làm một phép tính với một mảng biểu thức logic True/False để trả về giá trị có thể tính toán được là {0,1}

    Một lý do nữa để không dùng "-" mà nên dùng "--" là khi lập công thức, dùng "--" người lập công thức không cần bận tâm có bao nhiêu điều kiện, điều kiện lẻ hay chẵn để thêm dấu trừ nữa!.

    Một lý do nữa là đối với công thức phức tạp và dài, ngăn cách giữa các điều kiện bằng dấu "--" sẽ dễ nhận biết hơn là dấu "-" ở giữa một rừng công thức!
     
  5. DOSNET

    DOSNET Thành viên danh dự

    Bạn đang quan tâm tới giải pháp cải thiện tốc độ của SUMPRODUCT, có lẽ bạn hiểu hơi nhầm một chút phần mình tô đậm, mình đống ý với những gì Ca_dafi đã giải thích, ngoài ra dùng --( trong một số trường hợp giúp ta tính được mà không báo lỗi #VALUE khi trong mảng có cả giá trị kiểu TEXT, đây là điểm hay nhất mình thường áp dụng !

    Trong 11 Ví dụ trên có những chỗ bản thân mình cũng chưa hiểu rõ lắm, chẳng hạn ở VD 1

    Mã:
      [COLOR=DarkRed] =SUMPRODUCT((ISNUMBER(MATCH(J42:J407,[B][COLOR=Red]Fred[/COLOR][/B],0)))*($A  $42:$A$407<TODAY()))[/COLOR]
    Fred có phải là một Name ?
     
    Lần chỉnh sửa cuối: 13 Tháng một 2009
  6. yeudoi

    yeudoi Moderator Staff Member

    Ngoài ra khi dùng dấu "--" có tác dụng tăng tốc độ tính toán.
     
  7. socola7287

    socola7287 Thành viên mới

    Tai Example 6: Em dang su dung ham =SUMPRODUCT((A1:A20<>"")/COUNTIF(A1:A20,A1:A20&"")) de dem co bao nhieu so khong trung nhau. Ket qua la chinh xac
    Y nghia va ket qua thi e da bit, e muon hoi nguyen tac van hanh cua no nhu the nao, mong cac bac send cau tra loi nhe
    E thanks truoc nhe!
     
  8. basang76

    basang76 Thành viên mới

    chào các bạn ! tôi nhận thấy hàm SUMPRODUCT này rất hay . nhưng tôi đọc bài các bạn hướng dẫn mà thấy khó quá . Bởi vì các bạn viết giải thích bằng tiếng anh mà tôi thì mù tịt tiếng anh. làm phiền các bạn viết bằng tiếng việt được không ? cảm ơn các bạn nhiều! Qua đây làm ơn hãy gỡ rối giúp tôi với . tôi có một bảng tính trong đó có các cột ghi tên các dân tộc . tôi muốn đếm số lượng dân tộc nói chung ( ví dụ như: dao, tày , nùng , thái . trong đó trừ người kinh ra ) bạn nào có thể giúp tôi được không / xin chân thành cảm ơn các bạn ! Nếu có thể hãy gửi cho tôi theo địa chỉ basang76@ymail.com
     
  9. EXCEL2020

    EXCEL2020 Thành viên mới

    Bạn đưa file lên mọi người sẽ dễ dàng giúp bạn. Theo bạn diễn tả thì chỉ cần countif là được rồi. Ví dụ minh họa
    Column1
    [TR]
    [TD]Tên[/TD]
    [TD]dân tộc[/TD]
    [TD]đếm[/TD]
    [/TR]
    [TR]
    [TD]ngyuen van a[/TD]
    [TD]thai[/TD]
    [TD]COUNTIF($G$11:$G$15;G11)[/TD]
    [/TR]
    [TR]
    [TD]nguyen van b[/TD]
    [TD]tay[/TD]
    [TD="align: right"]2[/TD]
    [/TR]
    [TR]
    [TD]nguyen thi c[/TD]
    [TD]nung[/TD]
    [TD="align: right"]1[/TD]
    [/TR]
    [TR]
    [TD]nguyen thi d[/TD]
    [TD]thai[/TD]
    [TD="align: right"]2[/TD]
    [/TR]
    [TR]
    [TD]ngyen van f[/TD]
    [TD]tay[/TD]
    [TD="align: right"]2[/TD]
    [/TR]
     

Chia sẻ trang này