baggiotung
Thành viên mới

- Tham gia
- 16/10/09
- Bài viết
- 32
- Được thích
- 7
Bạn cho mình coi công thức sumproduct + 13if với, trong file không có?Các bạn giúp mình công thức cho cột tổng công với, dùng sumproduct phải 13if. Dùng VBA cũng đc. Cám ơn
Hic, mình đang đi hỏi màBạn cho mình coi công thức sumproduct + 13if với, trong file không có?
Mình đang muốn học cách kết hợp dùng 13 if với sumproduct của bạn.Hic, mình đang đi hỏi mà
Hihi. Em mạo muội viết thử hàm này, Hen^ xui. ,có sumproduct mà ko có được 13 if.Các bạn giúp mình công thức cho cột tổng công với, dùng sumproduct phải 13if. Dùng VBA cũng đc. Cám ơn
Bạn sửa lại tiêu đề nhé, kẻo bị xóa bài .Có thể Sửa là" Tính tổng theo mã tham chiếu trong vùng"Các bạn giúp mình công thức cho cột tổng công với, dùng sumproduct phải 13if. Dùng VBA cũng đc. Cám ơn
Offset gọn hơn, lúc nãy em không nghĩ đến. hihiBạn sửa lại tiêu đề nhé, kẻo bị xóa bài .Có thể Sửa là" Tính tổng theo mã tham chiếu trong vùng"
N6=SUMPRODUCT(D6:M6;OFFSET($R$4;MATCH(B6;$S$4:$S$18;0)-1;2;;10))
Uh. Học được Offset của a. PTHiệp là mình áp dùng liền , vậy mới nhớ lâu đượcOffset gọn hơn, lúc nãy em không nghĩ đến. hihi
cám ơn bạn nhiều nha.Bạn sửa lại tiêu đề nhé, kẻo bị xóa bài .Có thể Sửa là" Tính tổng theo mã tham chiếu trong vùng"
N6=SUMPRODUCT(D6:M6;OFFSET($R$4;MATCH(B6;$S$4:$S$18;0)-1;2;;10))
Sửa tiêu đề nha đi bạncám ơn bạn nhiều nha.
Cái này mới phát huy quái chiêu của SUMPRODUCT nèBạn sửa lại tiêu đề nhé, kẻo bị xóa bài .Có thể Sửa là" Tính tổng theo mã tham chiếu trong vùng"
N6=SUMPRODUCT(D6:M6;OFFSET($R$4;MATCH(B6;$S$4:$S$18;0)-1;2;;10))
N6=SUMPRODUCT(D6:M6*($S$5:$S$18=B6)*$T$5:$AC$18)
Function TraTC(Mã As String, Rng As Range) As Double
Dim BTra As Range, Cls As Range, TraSL As Range
Dim W As Integer
Set BTra = Range("DMuc") ' Vùng Bang Dinh Múc Duoc Gán Tên '
For Each Cls In BTra(1).Resize(BTra.Rows.Count)
If Cls.Value = Mã Then
Set TraSL = Cls.Offset(, 1).Resize(, 10): Exit For
End If
Next Cls
For W = 1 To Rng.Columns.Count
TraTC = TraTC + Rng(W).Value * TraSL(W).Value
Next W
End Function
Công thức này tuyệt cú mèoCái này mới phát huy quái chiêu của SUMPRODUCT nè
Mã:N6=SUMPRODUCT(D6:M6*($S$5:$S$18=B6)*$T$5:$AC$18)
![]()
Quan điểm của em là chọn phương pháp đơn giản hơn để làm, không phức tạp hóa vấn đề@Lê Hồng Minh83; @Nguyễn Hồng Quang; @khi ta 20; @Loc Uyen; @saobekhonglac
Nâng cấp bài toán cho vui: Nếu các cột sắp xếp không theo thứ tự thì mình phải xử lý bằng công thức ra sao!?
Xem sheet: 'vidu bai toan(bai2)'
Chúc anh em ngày vui.
Thân
Gửi anh ,nghĩ tới nghĩ lui, em tìm ra công thức cơ bản sẽ là. Em đang làm tiếp phần bôi màu đỏ còn lại là xong, cảm ơn anh đã bổ túc thêm kiến thức cho anh em@Lê Hồng Minh83; @Nguyễn Hồng Quang; @khi ta 20; @Loc Uyen; @saobekhonglac
Nâng cấp bài toán cho vui: Nếu các cột sắp xếp không theo thứ tự thì mình phải xử lý bằng công thức ra sao!?
Xem sheet: 'vidu bai toan(bai2)'
Chúc anh em ngày vui.
Thân
Đúng vậy em! nếu đưa về dạng chuẩn thì rất tốt không có vấn đề gì bàn thêm.Quan điểm của em là chọn phương pháp đơn giản hơn để làm, không phức tạp hóa vấn đề
Nên vấn đề này chỉ để nghiên cứu và giải trí thì được, áp dụng thực tế là em không chơi ah(áp dụng thực tế chỉ cần sort lại dữ liệu là được thôi mà)
Giỏi! gần xong rồi đó.Gửi anh ,nghĩ tới nghĩ lui, em tìm ra công thức cơ bản sẽ là. Em đang làm tiếp phần bôi màu đỏ còn lại là xong, cảm ơn anh đã bổ túc thêm kiến thức cho anh em
N6=SUMPRODUCT(SUMIF($T$4:$AC$4;$D$4:$M$4;T5:AC5)*D6:M6)
Cảm ơn anh. Làm xong công thức em cũng thấy vui 1 phần vì đã giải được bài toán hay, 1 phần là học thêm được cách dùng sumifĐúng vậy em! nếu đưa về dạng chuẩn thì rất tốt không có vấn đề gì bàn thêm.
Nếu như sort dòng thì dễ, chứ sort cột thì coi bộ phải qua nhiều công đoạn nữa mới tạo thành chuẩn thống nhất của hai bảng.
Trong thực tế, nhiều khi vô tình người nhập dữ liệu vào bảng hay tùy thích chèn thêm cột, thêm dòng, cho nên thứ tự bị xáo trộn.
Vì vậy, anh đưa trường hợp này cũng để cho anh em cái nhìn thoáng hơn và có phương án xử lý nhanh gọn hơn là sort cột.
Kệ! cứ coi như bài nâng cao công thức cho vui.
Chúc anh em ngày vui.
----------------------------------------------------------------------------------------------------------------------------
Giỏi! gần xong rồi đó.
Đằng sau, trợ lực bằng Offset()
Chúc em ngày vui.
Thân
Chưa xong mà em! giải quyết tiếp T5: AC5 đi em!Cảm ơn anh. Làm xong công thức em cũng thấy vui 1 phần vì đã giải được bài toán hay, 1 phần là học thêm được cách dùng sumif
Vâng ghép Offset vô là ổn.Chưa xong mà em! giải quyết tiếp T5: AC5 đi em!
Cố chút nữa là tới đích rồi.
Khà khà khà
![]()
Đó là con đường "học" và "tập" đúng đắn.Vâng ghép Offset vô là ổn.
Thú thật với anh hai là
Lúc đầu em mò mãi ko ra đâu, tắt đi mở lại file mấy lần (cũng hơi nản).
Đến 1 hồi, tự dưng nhớ đến 1 bài anh dùng sumif trong tìm bút toán sai. mò mò tiếp lắp thử cái đoạn SUMIF($T$4:$AC$4;$D$4:$M$4;T5:AC5)thấy kết quả = 55, lúc đó cũng không chắc lắm . Sau rồi ghép tiếp với sumproduct thấy ra kết quả 63.93, lúc đó mới biết mình làm đúng. Hì, đúng là em vẫn còn hên xui nhiều anh à
Vâng em xin trả bài đầy đủ theo file gửi kèm.Đó là con đường "học" và "tập" đúng đắn.
Em hoàn chỉnh công thức tại bài #16 để anh em tham khảo với.
Chúc em ngày vui.
Thân
Nhờ anh mở rộng kiến thức cho em; bằng cách dùng HLookup() với nhé.Còn một công thức gọi là "quái chiêu" nữa, ngắn hơn và cũng không dùng Ctrl+Shift+Enter.
Gợi ý: thay vì dùng Sumif(), anh sẽ dùng HLOOKUP()
Chính xác rồi em!Vâng em xin trả bài đầy đủ theo file gửi kèm.
N6=SUMPRODUCT(SUMIF($T$4:$AC$4;$D$4:$M$4;OFFSET($T$4;MATCH(B6;$S$5:$S$18; 0 ) ;;;10))*$D6:$M6)
Nhờ anh mở rộng kiến thức cho em; bằng cách dùng HLookup() với nhé.
Chúc anh chiều thứ 6 vui![]()
=SUMPRODUCT(HLOOKUP(T(IF({1},$D$4:$M$4)),$T$4:$AC$18,MATCH(B6,$S$4:$S$18,),)*D6:M6)
Cũng là lookup_value như macth, lookup mà 2 thằng này đưa vào trực tiếp được, còn v-hlookup thì phải biến thể mới sài được , hài thật, đúng là ông bill gây khó dễ cho người dùng thật, cách này rất hay, thanks.Chính xác rồi em!
Về phần công thức với hàm HLOOKUP() lý do anh nói "quái chiêu" là từ xưa đến giờ mình có thể đem mảng vào những đối số để chọn cột hay dòng trong hai hàm V-HLOOKUP(), Ví dụ: Như lối nhảy "Kangaroo" mà anh hay dùng VLOOKUP('Giá trị tìm', 'Vùng so khớp', {2,10,15,18,20}, 0) chẳng hạn, nhưng việc đem mảng vào 'Giá trị tìm' cho hai hàm này rất khó chịu. Chủ đề 'mở rộng' rất phù hợp với HLOOKUP() nên anh 'gã' nó cho "xứng đôi vừa lứa".
Chỉ Enter, rồi fill xuống.Mã:=SUMPRODUCT(HLOOKUP(T(IF({1},$D$4:$M$4)),$T$4:$AC$18,MATCH(B6,$S$4:$S$18,),)*D6:M6)
Chú ý hàm Hlookup() này có giá trị tìm là một mảng dùng IF(): T(IF({1},$D$4:$M$4)), và nếu mảng này không được "mở cửa" bằng hàm T(), thì mình vô phương để hiện nó thành 1 mảng hoàn chỉnh, và lấy toàn bộ đầy đủ 'Giá trị tìm'.
Đó là điều anh muốn chia sẻ cùng anh em.
Thân
Lâu rồi, không gặp tác phẩm hay.Cũng là lookup_value như macth, lookup mà 2 thằng này đưa vào trực tiếp được, còn v-hlookup thì phải biến thể mới sài được , hài thật, đúng là ông bill gây khó dễ cho người dùng thật, cách này rất hay, Cảm ơn.
Dù sao công thức này cũng chưa phải ngắn nhất, dạng lộn xộn này có hàm khác hay hơn.
Dạo này cũng lu bu anh, cũng vào thường mà tìm bài để giải quyết vấn đề riêng thôi.
Cái này mọi người làm hoài, dùng match xét vị trí thôi, dùng vlookup hay offset đều được. Mượn lại hàm vlookup( ,,mảng,) của anh.Lâu rồi, không gặp tác phẩm hay.
Cứ tự nhiên em.
Thân
Đúng là em!Dạo này cũng lu bu anh, cũng vào thường mà tìm bài để giải quyết vấn đề riêng thôi.
Cái này mọi người làm hoài, dùng match xét vị trí thôi, dùng vlookup hay offset đều được. Mượn lại hàm vlookup( ,,mảng,) của anh.
=SUM(VLOOKUP(B6,$S$5:$AC$18,MATCH($D$4:$M$4,$S$4:$AC$4,),)*D6:M6)
Em test qua nó ra #VALUE, không biết bị gì taDạo này cũng lu bu anh, cũng vào thường mà tìm bài để giải quyết vấn đề riêng thôi.
Cái này mọi người làm hoài, dùng match xét vị trí thôi, dùng vlookup hay offset đều được. Mượn lại hàm vlookup( ,,mảng,) của anh.
=SUM(VLOOKUP(B6,$S$5:$AC$18,MATCH($D$4:$M$4,$S$4:$AC$4,),)*D6:M6)
Kết thúc bằng Ctrl+Shift+EnterEm test qua nó ra #VALUE, không biết bị gì ta