Nhờ Thầy hướng dẫn cách lồng hàm có nhiều điều kiện, nhưng tính điều kiện trong khoảng giúp. Mình làm sáng giờ nhưng nó ko hiểu?
Nó chỉ hiện lên 2 mục là hàng bán được nhưng chậm và hàng tồn thôi.
Mong Thầy hướng dẫn: 

Với biến r bạn có thể xác định bằng công thức SUMIFS để tổng hợp theo:
- Điều kiện 1: từ ngày
- Điều kiện 2: đến ngày
- Điều kiện 3: loại nhập/xuất: là Xuất kho
- Điều kiện 4: mã hàng hóa
Với biến v bạn dùng hàm SUMIFS để tổng hợp theo:
- Điều kiện 1: từ ngày
- Điều kiện 2: đến ngày
- Điều kiện 3: loại nhập/xuất: là Nhập kho
- Điều kiện 4: mã hàng hóa
Biến k ở đây mình hiểu là so sánh tỷ lệ giữa Hàng xuất - Hàng nhập trên tổng số hàng xuất.
Cách viết hàm SUMIFS bạn xem lại hướng dẫn trong khóa học nhé.
Ah ko Thầy oi!
Thầy chỉ hướng dẫn giúp em lồng cái hàm IF thôi. Vì em đã có kết quả của K rồi.
Thầy chỉ giúp em hàm IF để ra kết quả trong ô màu xanh em tô thôi Thầy.
Vì em có sử dụng hàm IFS như trên mà ko ra? nên nhờ Thầy hướng dẫn
=IFS(I9<-1,"HÀNG TỒN",I9>-1,"BÁN ĐƯỢC NHƯNG CHẬM", I9<-0.3,"BÁN ĐƯỢC NHƯNG CHẬM", I9>-0.3,"BÁN BÌNH THƯỜNG",I9<-0.1,"BÁN BÌNH THƯỜNG",I9>-0.1,"BÁN CHẠY",I9<0.2,"BÁN CHẠY",I9>0.2,"KHAN HÀNG",I9<1,"Khan hàng")

Dùng 4 hàm if lồng nhau như thế này bạn nhé:
=IF(I9<-1, "Hàng tồn",
IF(I9<-0.3, "Bán được nhưng chậm",
IF(I9<-0.1, "Bán bình thường",
IF(I9<0.2, "Bán chạy", "Khan hàng"))))
Dạ Cảm ơn Thầy.
Nhưng Điều kiện của hệ số lưu kho K nằm trong khoảng, mình ko sử dụng trong khoảng được hay sao Thầy ah?

Chào bạn bạn có thể đọc thêm bài này:
Thầy ơi! Em đang nhờ các bạn trên Facebook của GITIHO giúp đỡ về cách lồng hàm theo điều kiện này. Có post bài trên Facebook nhưng lại bị xóa bài rồi ah.
Đọc bài viết Thầy gợi ý nhưng cũng ko viết dc hàm có điều kiện trong khoảng. Nhờ Thầy chỉ giúp.
Thanks

Chào bạn bạn có thể lồng hàm như ở trên nhé, hoặc đẩy file giúp gitiho
Thầy ơi! Em có 1 File dữ liệu mà 15.000 dòng và 16 cột. Tổng cộng khoảng 5 sheet.
Hiện tại dữ liệu dùng công thức khá nhiêu. Thầy có thể giúp em giải pháp nào cho nhẹ dữ liệu được không Thầy? Thầy hỗ trợ giúp em với, với 15.000 dòng thì công thức nó rất nặng File, em có tìm hiểu VBA trên diễn dàn và Group Gitiho, nhưng cũng chỉ Fiildown công thức các ô.
Có giải pháp nào mà làm nhẹ File nhất không Thầy? Thầy cho em địa chỉ mail em đẩy File nhờ Thầy hỗ trợ giúp em học viên với ah.
Thanks Thầy
chào bạn, bạn cần sử dụng vòng lặp hoặc sql để thực hiện công việc trên nhé.
Chào Thầy!
Sử dụng vòng lặp là sao Thầy ah? Em chỉ cần duy nhất 1 dòng đầu có copy, và các dòng sau tới n dòng thì chỉ cần copy dòng liền kề. Để không bị giản nở quá nhiều dữ liệu có cột công thức sẽ khiến File quá nặng.
Còn SQL thì em đa đăng ký nhưng chưa học. Thầy có thể hỗ trợ Em với ah?
Chào bạn trong phần này bạn cần sử dụng vòng lặp thay cho công thức, nghĩa là vba sẽ thay thế toàn bộ công thức của bạn, bạn chỉ cần ấn 1 nút là ra kết quả, bỏ qua công thức.
Chào Thầy!
Thầy hướng dẫn giúp em 1 câu lệnh cho vòng lặp dc không Thầy. Em sẽ sử dụng cho 1 dòng đầu tiên sử dụng công thức và áp dụng cho 15000 dòng còn lại. Tương tự vậy em sẽ áp dụng cho 5 Sheet còn lại.
Cảm ơn Thầy
Chào Thầy ah
Những cột em đánh dấu vàng là sử dụng công thức, và những cột này mang tính chất là copy công thức của dòng đầu tiên, vì đa phần là công thức Vlookup; Sum; IF.
Nhưng nếu sử dụng cho 16 cột và 15000 dòng thì nó rất năng.
Nên vì vậy nhờ Thầy hỗ trợ giúp ah. Chứ File nặng quá mỗi lần thao tác là đợi File load dữ liệu rất lâu.
Thầy hỗ trợ và hướng dẫn giúp học trò với ah

Chào bạn bạn sẽ cho dữ liệu vào mảng và đưa ra kết quả bằng cách lặp trong vòng lặp đó có điều kiện nhé.
Dạ Chào Thầy!
Lập trình VBA em mới học tới chương 5 thôi Thầy ah. Vẫn đang tiếp tục học để nâng cao kiến thức. Vì vậy Thầy giúp em 1 code VBA vòng lập để em hiểu rõ hơn và sau đó tự học và tự làm các công thức khác dc ko ah?
Ví dụ: Em có cột công thức như sau: =IFERROR(IFS(D8="COOP",VLOOKUP(F8,DMMH!$B$4:$H$1305,5,0), D8="STNS",VLOOKUP(F8,DMMH!$B$4:$H$1305,6,0), D8="HS",VLOOKUP(F8,DMMH!$B$4:$H$1305,7,0)),"")
Công thức này sẽ lập tới dòng 15000. Vậy Thầy Code giúp em 1 đoạn để em tự học và tự tìm hiểu thêm dc ko Thầy.
Em cảm ơn Thầy.
Dạ Chào Thầy!
Thầy có thể xem qua File Excel của em được không ah? Chứ công thức nhiều quá. Mà dùng công thức cho cả 5 sheet với số dòng và cột lớn. Nó đơ luôn.
Thầy hướng dẫn giúp code VBA để hoàn thiện File được không Thầy?
Chào bạn bạn có thể gửi file lên giúp gitiho nhé.
File bạn dùng nhiều công thức động quá, lại sử dụng phương pháp copy paste nên file sẽ càng nặng và chậm khi chạy code.
Bạn có thể làm theo phương pháp sau:
Mỗi báo cáo có 1 nút update. Khi bấm nút thì mới đưa công thức tính toán cho báo cáo, còn ở trạng thái bình thường thì báo cáo không có công thức (chỉ có kết quả công thức dưới dạng giá trị, ko phải công thức sống).
Code mẫu như sau:
Bước 1: tìm dòng cuối của báo cáo
Dim lr as long
lr = Sheets(...).Range(...).End(xlUp).Row
Bước 2: công thức ở dòng đầu của báo cáo, filldown xuống dòng cuối
ví dụ vùng công thức áp dụng là cột D, từ dòng 6 tới dòng cuối
range("D6:D" & lr).FillDownBước 3: bỏ công thức, giữu lấy kết quả
range("D7:D" & lr).Value = range("D7:D" & lr).ValueChú ý là ở bước 3 vùng xóa công thức tính từ dòng 7, không phải dòng 6 nhé. Như vậy chỉ có công thức sống trong dòng 6 thôi, còn các dòng khác là kết quả của công thức.
=> Khi lặp lại bước này cho lần cập nhật sau thì không phải lo chuyện bị mất công thức.
Bạn gom toàn bộ code trong 1 sub và gán macro vào nút update báo cáo
Chú ý đây chỉ là biện pháp hỗ trợ thôi nhé. Vì file của bạn có đặc điểm là số lượng dữ liệu lớn => để làm tốt hơn thì cần thành thạo toàn bộ kiến thức VBA, sau đó mới áp dụng sẽ tốt hơn là vừa học vừa áp dụng. Bởi để dùng VBA tốt thì kiến thức phải có hệ thống và nền tảng, nên bạn hãy học hết 1 lượt rồi mới học sâu vào từng phần mà bạn quan tâm, tiếp đến khi áp dụng vào thực tế cần luyện tập nhiều lần để phát triển tư duy lập trình và viết code.
Tại thời điểm này rất khó để có 1 phương pháp tốt nhất cho bạn được, nên bạn thử áp dụng cách ở trên để giảm bớt công thức sống nhé. Như thế file cũng nhẹ và tính nhanh hơn rồi.
Dạ Cảm ơn Thầy!
Thầy ơi nó báo lỗi vậy là sao Thầy ah?

dạ Cảm ơn Thầy em viết sai Row thành Rom và sửa lại rồi.
Em đang mò chọn nhiều sheet và nhiều cột. và Filldown 1 lần được ko Thầy?
Dạ Chào Thầy!
Em sử dụng cho nhiều dòng dc rồi ah. Tuy nhiên vẫn chưa làm dc cho nhiều sheet ( sheet khác ở đây bằng đúng cột và dòng cần Filldown).
Vậy thì có sử dụng chung 1 code áp dụng cho nhiều sheet khác nhau dc không vậy Thầy ah?
Cảm ơn Thầy
Dạ Chào Thầy!
Còn 1 chút xíu vấn đề nữa, Thầy hướng dẫn em với ah. Các bảng khác khi em Filldown xuống thì nó copy mất luôn cả dòng Tổng cộng. ( dòng subtotal cuối cùng) của bảng.
vậy làm thế nào để nó hiểu và chừa dòng tổng cộng ra dc vậy Thầy ah
Chào bạn bạn xem lại biến dongcuoi của bạn đâng bị sai nhé.
Chào bạn, nếu bạn muốn nhanh hơn trong quá trình viết ra ứng dụng như tổng hợp có thể xem thêm khoá vbag02 của gitiho
Trong phần này có phần dic dùng tổng hợp dữ liệu
Chào Thầy!
Link Thầy gửi ko vào được ah?
Với Thầy chỉ giúp em:
Còn 1 chút xíu vấn đề nữa, Thầy hướng dẫn em với ah. Các bảng khác khi em Filldown xuống thì nó copy mất luôn cả dòng Tổng cộng. ( dòng subtotal cuối cùng) của bảng.
vậy làm thế nào để nó hiểu và chừa dòng tổng cộng ra dc vậy Thầy ah
Thanks Thầy
Chào bạn, phần này bạn cần đăng ký khoá học sẽ có phần dic dùng để tổng hợp dữ liệu nhé.
Dạ Chào Thầy!
Nhờ Thầy chỉ em giúp! Em thêm cột G vào thì báo lỗi này.
Nhưng bỏ cột G đi thì code chạy bình thường.
Em có tra google về lỗi này thì báo là sai đối số or thuộc tính.
Thầy hướng dẫn giúp em với ah? 
Chào bạn bạn lấy từng cột riêng lẻ bạn nhé
range("D7:D"&dongcuoi).value = range("D7:D"&dongcuoi).valuekiểu này nhé bạn thử xem hi vọng giúp được bạn
Dạ chào Thầy!
Cảm ơn Thầy đã hỗ trợ.
Về công thức tìm dòng cuối có áp dụng dc cho các sheet giống nhau và cùng fiildow cột bằng nhau dc ko Thầy.???
Em có chạy code này cho 2 sheet vì cùng dòng cột. Nhưng báo lỗi, Thầy hướng dẫn giúp em ah? Thanks Thầy.

Chào bạn bạn kiểm tra lại code dongcuoi nhé, nếu bạn muốn chỉ từng sheets bạn nên gõ tên sheets trước range nhé.
Dạ Chào Thầy!
Thầy hướng dẫn giúp em đoạn code sau với ah.
Với Sub hamIFS_tinhluong ( trong hình): thì chạy bình thường và đưa dữ liệu vào dc.
Nhưng với sub VonglapIFS_tinhluong . EM chỉ khai báo biến thôi thì báo lỗi. Mặc dù em dò kỹ lại rồi thì khai báo biến đã đúng và đủ.
Thầy hướng dẫn giúp em vói ah. Thanks Thầy.

Chào bạn bạn thêm then vào cuối nữa nhé, do cú pháp của bạn thiếu.
Để tương tác với gitiiho tốt hơn, với câu hỏi khác nhau bạn nên tạo ra chủ đề riêng biệt, cảm ơn bạn
Dạ Chào Thầy!
Em chưa hiểu rõ ý Thầy nói luôn ah.
Sub hamIFS_tinhluong ( trong hình): thì chạy bình thường và đưa dữ liệu vào dc.
Nhưng với sub VonglapIFS_tinhluong thì nó không chạy.
Thêm then ở đâu nữa Thầy!?? Vì câu nào cũng Có THEN rồi tới lương. = .
Vậy thêm Then ở vị trí nào ah?
Nghĩa là bạn tách ra như sau:
IF dieu kien then
//kq1
ElseIf dk then
//kq2
end if
Chủ đề mới là bạn tạo ra câu hỏi mới ấy nếu không không liên quan đến phần cũ
Dạ Chào Thầy!
Vậy bảng trên của em là đúng chỉ có là phải xuống dòng phải ko Thầy.
Vì Then luong = 11000000
Vì vậy đúng với code hình trên của em rồi.
Giờ em xuống dòng mà cũng báo lỗi Thầy ah.

bạn gửi file lên giúp gitiho nhé./
Dạ Chào Thầy!
Mong Thầy giúp đở. sub VonglapIFS_ tinhluong ( có khai báo biến nha Thầy). Thanks Thầy ah
Chào bạn bạn cho gitiho xin quyền truy cập nhé.
Chào bạn bạn thử code sau nhé
Sub VonglapIFS_tinhluong()
Dim i As Long, BP As String, ngay As String, luong As Variant
For i = 2 To 10
BP = Sheet1.Range("E" & i).Value
ngay = Sheet1.Range("S" & i).Value
' Bo phan BGD
If BP = "BGD" And ngay < 31 Then
luong = 10000000
ElseIf BP = "BGD" And ngay < 720 Then
luong = 11000000
ElseIf BP = "BGD" And ngay < 1080 Then
luong = 12000000
ElseIf BP = "BGD" And ngay < 1440 Then
luong = 13000000
ElseIf BP = "BGD" And ngay < 2160 Then
luong = 14000000
ElseIf BP = "BGD" And ngay < 2880 Then
luong = 15000000
End If
Sheet1.Range("G" & i).Value = luong
Next
End Sub
Dạ chào Thầy ah!
Cảm ơn Thầy đã hỗ trợ.
Code vào thì chạy nhưng biến i chạy từ 2 đến 10 đều cho ket quả là 14000000
Em sợ bị thiếu điều kiện nên cho thêm điều kiện của quản đốc QDO vào.
Nhưng cho vào thì code báo lỗi " Next without for"
Thầy hướng dẫn giúp em ah. Thanks 
chào bạn cú pháp if là phải end if để kết thúc mới mở được thêm nhé.
Dạ Chào Thầy!
Cảm ơn Thầy đã hỗ trợ Em ah. Em làm dc hết rồi, cảm giác sướng lắm. Nhưng với 14 bộ phận và câu lệnh dài. Có vẻ nó cũng khá là nặng. Nên chạy là văng ra khỏi Excel.
Em cũng đang loay hoay tìm xem có cách nào khác ko? Chứ ko thì phải sử dụng công thức tay cho từng bộ phận như cũ.
Code rồi mà nó khá năng đó Thầy.
Cảm ơn Thầy
Chào bạn nếu bạn muốn nhẹ nữa có thể dùng mảng và sql thì nó sẽ nhanh và nhẹ hơn bạn có thể tham khảo tại đây