Lọc giá bán theo khách hàng

Liên hệ QC
Đơn giản là nhu vầy. Mình có bảng chi tiết gồm mã số khách hàng, mã sản phẩm và đơn giá. Theo nguyên tắc mỗi sản phẩm sẽ có 1 giá chung (dùng chung cho tất cả khách hàng). Nhưng trong đó có vài trường hợp khách hàng sẽ có giá khác với giá chung (có thể thấp hơn 100đ hay cao hơn 60đ,....). Mình muốn từ bảng chi tiết đó liệt kê ra giá của tất cả sản phẩm theo tiêu chi sau:

Cột thể hiện tất cả sản phẩm, cột thể hiện giá chung (giá xuất nhiều nhất trong bảng chi tiết), và các cột còn lại là giá của những khách hàng đi giá đặc biệt (khác so với giá chung).

Như ví dụ:
Gia chung của SP0001 là 10,000, SP0002 là 9,000, SP000 là 11,000.

KH CA0003 có 2 giá đặt biệt: SP0001 là 10,500; SP0003 là 9,900 (SP0002 đi theo giá chung)
KH CA0001 có 1 giá đặt biệt: SP0002 là 8,800;

View attachment 181742
Như nội dung tôi nêu bài 12, thêm cột Loại giá rồi gán giá chỉ có người nhập liệu mới biết cái nào giá chung, giá đặt biệt rồi sử dụng PivotTable.
 
Đơn giản là nhu vầy. Mình có bảng chi tiết gồm mã số khách hàng, mã sản phẩm và đơn giá. Theo nguyên tắc mỗi sản phẩm sẽ có 1 giá chung (dùng chung cho tất cả khách hàng).
Nếu cột giá chung "Theo nguyên tắc" bạn nhập thủ công thì "đơn giản", nhưng 1000 mã hàng, bán mỗi mã hàng 100 lần, cho 1000 khách hàng với giá khác nhau rồi biểu tìm giá chung của từng mặt hàng thì "không đơn giản" đâu.
Viết code lấy dữ liệu cho từng giai đoạn , chưa "gom" được, bạn thử xem.
 

File đính kèm

  • Loc gia Khac.xlsb
    23.2 KB · Đọc: 13
Nếu cột giá chung "Theo nguyên tắc" bạn nhập thủ công thì "đơn giản", nhưng 1000 mã hàng, bán mỗi mã hàng 100 lần, cho 1000 khách hàng với giá khác nhau rồi biểu tìm giá chung của từng mặt hàng thì "không đơn giản" đâu.
Viết code lấy dữ liệu cho từng giai đoạn , chưa "gom" được, bạn thử xem.

Anh BaTe cho em hỏi trong code mình lấy được bao nhiêu dòng của bảng chi tiết vậy anh, dữ liệu của em hơn 30.000 dòng
 
Như vậy thấy dễ hiểu hơn nè. Cái này mình nghĩ bạn làm theo cách của anh quocgiacan để lấy ra giá chung của sản phẩm. Sau đó bạn vlookup ngược lại chi tiết, cái nào giá chung thì bỏ ra. sau đó pivot những cái riêng đó lại và lấy giá theo từng KH là sẽ ok thôi

Mình cũng từng thử cách đó rồi nhưng ngặt cái là có những SP nó chỉ có 1 giá thôi, nên công thức tìm ra giá chung nó cũng không có thì bó tay thôi.
 
Anh BaTe cho em hỏi trong code mình lấy được bao nhiêu dòng của bảng chi tiết vậy anh, dữ liệu của em hơn 30.000 dòng
Bạn cứ chạy thử code, đến "bi nhiêu" dòng mà code "la làng" mới biết, tôi không có dữ liệu làm sao thử được.
Tạm thời tìm trong các Sub, thay các số 1.000 thành 100.000 đi.
Chú ý: Ba Tê chứ không phải BaTe
 
Lần chỉnh sửa cuối:
Bạn cứ chạy thử code, đến "bi nhiêu" dòng mà code "la làng" mới biết, tôi không có dữ liệu làm sao thử được.
Tạm thời tìm trong các Sub, thay các số 1.000 thành 100.000 đi.
Chú ý: Ba Tê chứ không phải BaTe
Dạ, Cám ơn anh nhiều
 
Bạn cứ chạy thử code, đến "bi nhiêu" dòng mà code "la làng" mới biết, tôi không có dữ liệu làm sao thử được.
Tạm thời tìm trong các Sub, thay các số 1.000 thành 100.000 đi.
Chú ý: Ba Tê chứ không phải BaTe

Đã thử 100.000 dòng rồi nha anh Ba Tê. Tranh thủ thử lúc đi ăn trưa, kết quả đi ăn trưa xong, uống cafe gần 2 tiếng vào được 1 thông báo lỗi bộ nhớ không đủ. Hehe. Khoảng 50.000 dòng thì chạy tốt và nhanh. Một lần nữa cám ơn anh nhiều.

Anh cho em hỏi, trong file có 2 code, LOC GIA & LOC GIA KHAC, vậy mình chạy code nào mới chuẩn vậy anh, Em thử chạy code LOC GIA xong rồi chạy code GIA KHAC thì code không bị lỗi (kết quả không thay đổi), nhưng chạy xóa dữ liệu của code LOC GIA thì chạy code GIA KHAC sẽ bị lỗi.
 
Đã thử 100.000 dòng rồi nha anh Ba Tê. Tranh thủ thử lúc đi ăn trưa, kết quả đi ăn trưa xong, uống cafe gần 2 tiếng vào được 1 thông báo lỗi bộ nhớ không đủ. Hehe. Khoảng 50.000 dòng thì chạy tốt và nhanh. Một lần nữa cám ơn anh nhiều.

Anh cho em hỏi, trong file có 2 code, LOC GIA & LOC GIA KHAC, vậy mình chạy code nào mới chuẩn vậy anh, Em thử chạy code LOC GIA xong rồi chạy code GIA KHAC thì code không bị lỗi (kết quả không thay đổi), nhưng chạy xóa dữ liệu của code LOC GIA thì chạy code GIA KHAC sẽ bị lỗi.
Chạy code LOCGIA trước để lấy giá chung từng mã hàng, dựa vào Giá chung mới chạy code tìm Giá khác.
Không biết giá chung làm sao tìm được giá khác?
 
Chạy code LOCGIA trước để lấy giá chung từng mã hàng, dựa vào Giá chung mới chạy code tìm Giá khác.
Không biết giá chung làm sao tìm được giá khác?

Nhưng khi chạy code LOCGIA xong thì chạy code GIAKHAC thì kết quả không thay đổi.
 
Nhưng khi chạy code LOCGIA xong thì chạy code GIAKHAC thì kết quả không thay đổi.
Dòng cuối cùng trong Sub Loc Gia có lệnh gọi Sub Gia Khác chạy luôn rồi, thay đổi là sao?
Mã:
Range("G2").Resize(1000, 2).ClearContents
Range("G2").Resize(K, 2) = dArr
GPE_GIAKHAC     '<------------Nó  chạy ở đây luôn'
End Sub
 
Web KT
Back
Top Bottom