Ít ra bạn phải cho biết muốn kết quả như thế nào, năm ở đâu chứ ???Mọi người giúp em nhé. Làm thế nào cũng được ạ. Thêm cột thêm hàng thêm sheet phụ hay VBA gì gì cũng được ạ. Hihi



Vâng em cảm ơn #concogia. Nhưng ý em là: lỗi khác nhiều hơn 5 nhưng phải là 5 (hoặc hơn 5) ngày liên tiếp tính từ ngày gần nhất. Ví dụ 5 ngày lỗi thì phải đáp ứng 5 ngày gần nhất đều liên tục lỗi và đồng thời ngày thứ 6 phải không lỗi ạ. Nghĩa là giả sử trong 10 ngày, nếu thoả mãn thì sẽ như sau: ngày 10 lỗi, ngày 9 lỗi, ngày 8 lỗi, ngày 7 lỗi, ngày 6 lỗi, VÀ NGÀY 5 PHẢI KHÔNG LỖI #concogia ạ. #concogia giúp em nhé.Ít ra bạn phải cho biết muốn kết quả như thế nào, năm ở đâu chứ ???
Làm đại cho bạn nhé
Xem ở hàng 12, những em nào màu vàng là bị lỗi khác nhiều hơn 5 so với của hàng chính, còn số trong các cell là số lần khuyến mãi khá nhau giữa cửa hàng chính và các cửa hàng chi nhánh
1) Cái in đậm hình như........chưa rõ nghĩaVâng em cảm ơn #concogia. Nhưng ý em là: lỗi khác nhiều hơn 5 nhưng phải là 5 (hoặc hơn 5) ngày liên tiếp tính từ ngày gần nhất. Ví dụ 5 ngày lỗi thì phải đáp ứng 5 ngày gần nhất đều liên tục lỗi và đồng thời ngày thứ 6 phải không lỗi ạ. Nghĩa là giả sử trong 10 ngày, nếu thoả mãn thì sẽ như sau: ngày 10 lỗi, ngày 9 lỗi, ngày 8 lỗi, ngày 7 lỗi, ngày 6 lỗi, VÀ NGÀY 5 PHẢI KHÔNG LỖI #concogia ạ. #concogia giúp em nhé.



1) Cái in đậm hình như........chưa rõ nghĩa
2) Hình như...... chơi VBA cho đỡ nhưc đầu
3) Chưa rõ đề bài lắm ( hình như càng giải thích....càng rối) nên bi giờ làm đại thế này, cứ em nào bị lỗi bằng 5 trở lên & liên tục (tính ngược từ ngày 10 trở lên) thì ....tóm em đó, còn lại cho qua
Trong bài, hàng 14 lấy kết quả, em nào thoát thì hiện chữ "OK", em nào không "OK" thì hiện số ngày liên tục tính từ dưới lên. N15 có 6 em lỗi nhưng chỉ có 5 em liên tục, N17 có 7 em lỗi nhưng cóc có 5 em nào liên tục
Híc
Bạn bấm Alt + F11 chép đè code này lên code cũ giúp mình nhéCảm ơn #concogia. Ý em là cách tìm để ra kết quả như CN11 ấy, còn CN2, CN7 và CN15 không thỏa mãn ạ. "Lỗi" từ 5 ngày trở lên sẽ tính ngược bắt đầu từ ngày cuối cùng- nếu ví dụ trên là 1o ngày thì phải tính bắt đầu từ ngày thứ 10 tính ngược lại, nếu ngày thứ 10 không lỗi thì 9 ngày sau lỗi thì cũng không tính đâu ạ.
Public Function Loi(ChC, Cn)
Dim Dk, I, A, B, iDem, iNgay
Dk = " iPhone SAMSUNG Blackberry NOKIA Microsoft LG HTC ASUS Philips SONY "
A = IIf(InStr(Dk, ChC(Cn.Rows.Count)) > 38, 1, 0)
B = IIf(InStr(Dk, Cn(Cn.Rows.Count)) > 38, 1, 0)
If A <> B Then
For I = Cn.Rows.Count To 1 Step -1
A = IIf(InStr(Dk, ChC(I)) > 38, 1, 0)
B = IIf(InStr(Dk, Cn(I)) > 38, 1, 0)
If A <> B Then
iDem = iDem + 1: iNgay = iNgay & " " & I
ElseIf iDem > 4 Then
Loi = Replace(Trim(iNgay), " ", ", "): Exit Function
Else
Loi = "OK": Exit Function
End If
Next I
Else
Loi = "OK"
End If
End Function



Bạn bấm Alt + F11 chép đè code này lên code cũ giúp mình nhé
Có gì nói tiếpMã:Public Function Loi(ChC, Cn) Dim Dk, I, A, B, iDem, iNgay Dk = " iPhone SAMSUNG Blackberry NOKIA Microsoft LG HTC ASUS Philips SONY " A = IIf(InStr(Dk, ChC(Cn.Rows.Count)) > 38, 1, 0) B = IIf(InStr(Dk, Cn(Cn.Rows.Count)) > 38, 1, 0) If A <> B Then For I = Cn.Rows.Count To 1 Step -1 A = IIf(InStr(Dk, ChC(I)) > 38, 1, 0) B = IIf(InStr(Dk, Cn(I)) > 38, 1, 0) If A <> B Then iDem = iDem + 1: iNgay = iNgay & " " & I ElseIf iDem > 4 Then Loi = Replace(Trim(iNgay), " ", ", "): Exit Function Else Loi = "OK": Exit Function End If Next I Else Loi = "OK" End If End Function
1) Ngày thì không thành vấn đề, trong hàm có khai báo ( cột B có bao nhiêu hàng thì cứ khai báo bấy nhiêu vào hàm thôi, hàng của chi nhánh cũng phải bằng số hàng của cửa hàng chính)Vâng em cảm ơn #concogia. Vậy nếu bây giờ không phải là 10 ngày mà tiếp theo đó là 30 ngày... thì thế nào ạ? Và nếu như hình thức khuyến mại đổi chỗ cho nhau, ví dụ iPhone khuyến mại Bao da, SONY khuyến mại Ốp lưng nhưng giờ thay đổi lại là iPhone khuyến mại Ốp lưng còn SONY lại khuyến mại bao da thì sao ạ? Hoặc là loại bỏ hãng Philips đi và thay bằng hãng BPhone thì sao ạ?



Trời ơi cảm ơn anh #concogia nhiều nhiều ạ. Em muốn hỏi:1) Ngày thì không thành vấn đề, trong hàm có khai báo ( cột B có bao nhiêu hàng thì cứ khai báo bấy nhiêu vào hàm thôi, hàng của chi nhánh cũng phải bằng số hàng của cửa hàng chính)
2) Các mặt hàng tên gì ......thì cứ nhập vào cột cửa hàng chính ( thí dụ bỏ hãng Philips đi và thay bằng hãng BPhone)
3) Nếu hàng khuyến mãi không cố định thì phải tạo một vùng dữ liệu có 2 cột: cột "Tên hàng" và cột "Hàng khuyến mại" để khai báo vào hàm cho code biết đường mà xử nó
Tốt nhất là tạo một file mới, tạo bảng dữ liệu, bảng tên hàng & hàng khuyến mại cho giống thật một chút để làm một lần khỏi.....mắc công sửa
Trời ơi cảm ơn anh #concogia nhiều nhiều ạ. Em muốn hỏi:
1) Mỗi ngày sẽ có thêm một dòng dữ liệu của CHC và các CN, vậy ngày nào cũng phải viết lại code ạ?
2) Hàng tên gì thì nhập vào cột cửa hàng chính, vậy thay đổi thường xuyên thì cũng phải viết lại code thường xuyên ạ?
3) Giả sử hàng khuyến mại chỉ có 2 loại mà thôi, và chỉ có 10 loại hàng thôi, nhưng cách qui định "5 hàng này nhận khuyến mại này; 5 hàng kia nhận khuyến mại kia" thay đổi liên tục, vậy cũng phải viết lại code liên tục ạ?
Có cách nào làm cho khi mình nhập dữ liệu ngày mới thì Excel hiểu luôn để tìm từ ngày đó luôn (ví dụ thêm ngày thứ 11 vào thì không phải F2 rồi Enter lần lượt)? Và có cách nào để khi mình thay đổi loại khuyến mại đối với mặt hàng nào đó (vẫn giới hạn chỉ 2 loại khuyến mại, chia làm 2 nhóm mỗi nhóm 5 loại hàng) thì Excel hiểu luôn không phải viết lại code không ạ?
Không1) Mỗi ngày sẽ có thêm một dòng dữ liệu của CHC và các CN, vậy ngày nào cũng phải viết lại code ạ?
Không2) Hàng tên gì thì nhập vào cột cửa hàng chính, vậy thay đổi thường xuyên thì cũng phải viết lại code thường xuyên ạ?
Không, chỉ sửa bảng "tên hàng" & "Hàng khuyến mại"3) Giả sử hàng khuyến mại chỉ có 2 loại mà thôi, và chỉ có 10 loại hàng thôi, nhưng cách qui định "5 hàng này nhận khuyến mại này; 5 hàng kia nhận khuyến mại kia" thay đổi liên tục, vậy cũng phải viết lại code liên tục ạ?






.......chết đi cho rồi


Không
Không
Không, chỉ sửa bảng "tên hàng" & "Hàng khuyến mại"
Nhưng dữ liệu thay đổi liên tục, có khi hàng ngày, vùng dữ liệu không xác định nên code sẽ chuyển sang Sub, dùng phím nóng để chạy, môi khi chạy sẽ chọn vùng dữ liệu thay đổi mới nhất
Túm lại, nếu cứ phải sửa code sau mỗi lần chỉnh sửa, thêm bớt dữ liệu thì................chết đi cho rồi
Híc
1) Bạn chưa biết gì về code nên .......học trên diễn đàn đi rồi ......sẽ tự hiểuHihi #concogia làm em đau bụng quá, cười to mẹ dậy mắng chít giờ. Cơ bản là em ít kiến thức quá, cái VBA này lại càng không biết gì luôn. Có thể giải thích cho em rõ về cái code kia được không ạ?
[
Public Function Loi(ChC, Cn)
Dim Dk, I, A, B, iDem, iNgay
Dk = " iPhone SAMSUNG Blackberry NOKIA Microsoft LG HTC ASUS Philips SONY "
A = IIf(InStr(Dk, ChC(Cn.Rows.Count)) > 38, 1, 0)
B = IIf(InStr(Dk, Cn(Cn.Rows.Count)) > 38, 1, 0)
If A <> B Then
For I = Cn.Rows.Count To 1 Step -1
A = IIf(InStr(Dk, ChC(I)) > 38, 1, 0)
B = IIf(InStr(Dk, Cn(I)) > 38, 1, 0)
If A <> B Then
iDem = iDem + 1: iNgay = iNgay & " " & I
ElseIf iDem > 4 Then
Loi = Replace(Trim(iNgay), " ", ", "): Exit Function
Else
Loi = "OK": Exit Function
End If
Next I
Else
Loi = "OK"
End If
End Function]
Trên kia thì những ký tự nào có thể thay đổi theo yêu cầu ạ? Ví dụ iPhone em có thể tự sửa thành SONY, nhưng còn A = IIf(InStr(Dk, ChC(I)) > 38, 1, 0) thì "38" có nghĩa gì? Ngoài ra còn những giá trị nào có thể thay đổi theo yêu cầu khác được? Và nếu không phải là 20 Chi nhánh mà là 21 hoặc hơn thì làm thế nào ạ?
20 hay 200, 300... chi nhánh thì .......code cũng thế thôiVà nếu không phải là 20 Chi nhánh mà là 21 hoặc hơn thì làm thế nào ạ?



1) Bạn chưa biết gì về code nên .......học trên diễn đàn đi rồi ......sẽ tự hiểu
2) Lúc đầu nhìn bài của bạn thấy đơn giản, nhưng càng ngày yêu cầu càng nhiều nên không viết như bài đầu đươc, phải viết kiểu khác tức là cái code trên sẽ được......đi vào thùng rác
20 hay 200, 300... chi nhánh thì .......code cũng thế thôi
Đây là bài bạn mới có 2 mặt hàng khuyến mại, sau này bạn....phang vào đó 5, 7.... mặt hàng nữa hông chừng. Híc
Thôi, đi ngủ đi cho đỡ nhức đầu
Thân



Ơ cái file này #befaint làm hay thật đó. Nếu em muốn thay đổi tên cả 10 hãng kia, thêm số CN và thay đổi nhóm khuyến mại (vẫn 2 nhóm khuyến mại, mỗi nhóm 5 hãng) thì phải làm sao ạ?Rảnh rỗi sinh nông nổi. Nhìn cái avatar của chủ topic là lao vào...
Không biết có đáp ứng yêu cầu của thí chủ không. Thí chủ xem file nhé.
Đổi tên nhãn hiệu như nào thì bạn đổi ở sheet Info.Nếu em muốn thay đổi tên cả 10 hãng kia (vẫn 2 nhóm khuyến mại, mỗi nhóm 5 hãng)



Tôi chỉ làm với yêu cầu của bạn, nếu thêm thì phải sửa lại code:
Đổi tên nhãn hiệu như nào thì bạn đổi ở sheet Info.
Còn thêm số CN thì không vấn đề gì (cứ thêm vào bên phải bảng tính)
Bạn xem file đính kèm nhé.
Đổi như thế nào thì bạn tự đổi thôi (có 2 nhóm ứng với 10 nhãn hiệu).Ví dụ như iPhone chuyển sang nhóm 2 còn SONY chuyển sang nhóm 1 chẳng hạn.
Tôi nhớ không nhầm thì tính bằng tổ hợp C(k/n)??Giả sử chia ngẫu nhiên 10 mã hàng thành 2 nhóm thì có bao nhiêu khả năng xảy ra ạ? Mình có thể thêm một ô lựa chọn "cách chia nhóm x" ở phần TimCN được không ạ?



Đổi như thế nào thì bạn tự đổi thôi (có 2 nhóm ứng với 10 nhãn hiệu).
Tôi nhớ không nhầm thì tính bằng tổ hợp C(k/n)??
Yêu cầu này là nội dung khác (không có trong bài #1)...
Bạn có thể hỏi ở một mục khác (Cách phân loại 2 nhóm cho 10 nhãn hiệu chẳng hạn?)
Chúc thành công.
TT!






Hi hi có cần em làm mẫu ảnh cho ko ạ?bạn befaint nhiệt tình ghê . mai mốt tôi có việc gì muốn nhờ bạn ấy chắc tôi cũng phải sắm cái ảnh đại diện mượt mà như bạn van_utc mới được![]()



1) Bạn chưa biết gì về code nên .......học trên diễn đàn đi rồi ......sẽ tự hiểu
2) Lúc đầu nhìn bài của bạn thấy đơn giản, nhưng càng ngày yêu cầu càng nhiều nên không viết như bài đầu đươc, phải viết kiểu khác tức là cái code trên sẽ được......đi vào thùng rác
20 hay 200, 300... chi nhánh thì .......code cũng thế thôi
Đây là bài bạn mới có 2 mặt hàng khuyến mại, sau này bạn....phang vào đó 5, 7.... mặt hàng nữa hông chừng. Híc
Thôi, đi ngủ đi cho đỡ nhức đầu
Thân




chưa nhìn code những có thể trả lời,@concogia ơi!
Trong code có đoạn [Dk = " iPhone SAMSUNG Blackberry NOKIA Microsoft LG HTC ASUS Philips SONY "] vậy cái mình viết đổi chỗ iPhone với SAMSUNG thì code sẽ hoạt động khác đi hay sao ạ?
Nếu danh sách các nhãn hàng kia mình cho sang 1 sheet phụ thì mình có viết được code sang dạng [Dk = " Vị trí ô x Vị trí ô y ..."] không ạ?
Và nếu muốn trình bày kết quá kia theo dạng: không thoả mãn thì ko ghi gì, thoả mãn thì sẽ ghi số ngày thoả mãn mà thôi (5, 6, .. chứ không liệt kê các ô ngày ra) thì mình sửa đoạn code như thế nào ạ?




Vấn đê 3: Cũng làm được tuốtchưa nhìn code những có thể trả lời,
Vấn đề 1 : đổi chổ Iphone và SAMSUNG thì code vẫn hoạt động bình thường
Vấn đề 2: chuyển sang sheet phụ hay sheet gì gì đó, vẫn đặt điều kiện được như thường chỉ có tốn công thêm vào sheet.range....



Vậy khi em đổi hình thức khuyến mại dành cho iPhone và SONY khác đi (đổi chéo cho nhau) thì cái dòng code kia nó có hiểu không ạ? Dòng code nào qui định là 5 hãng này chung 1 loại khuyến mại, 5 hãng kia chung 1 loại khuyến mại ạ?chưa nhìn code những có thể trả lời,
Vấn đề 1 : đổi chổ Iphone và SAMSUNG thì code vẫn hoạt động bình thường
Vấn đề 2: chuyển sang sheet phụ hay sheet gì gì đó, vẫn đặt điều kiện được như thường chỉ có tốn công thêm vào sheet.range....



Rủ anh uống bia thì được ạ. Nhưng mà anh uống thôi, em chỉ 1 ngụm là nóng bừng mặt mũi, đầu óc lú lẫn rồi. Mà @concogia hôm qua đi ngủ sớm, không có cách nào "Buzz" kiểu như Yahoo Messenger hồi trước ạ.Vấn đê 3: Cũng làm được tuốt
cái này nếu anh con cò già viết cho bạn thì bạn nên làm lại file và nhờ ảnh sửa lại tí nữa rồi xài? xài xong nếu thấy ổn thì rủ ảnh uống vài chai bia thế là xong hic hic




Lúc đầu em chỉ biết đằng ấy là Gội rồi mới cạo, hôm nay mới biết là CON CÒ GIÀ ạ. Hihi