Hỗ trợ công thức tìm vị trí, bỏ số 0

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Tình nghĩa giang hồ

Thanh sơn bất cải, lục thủy trường lưu
Tham gia
29/9/20
Bài viết
330
Được thích
429
Chào anh chị em có trường hợp này nhờ anh chị hỗ trợ giúp
Quy tắc chỉ đơn giản là: ngày clear công nợ nhỏ hơn ngày Posting date thì không lấy dữ liệu ở cột E
Trong trường hợp này: ngày clear là ngày 12.05 thì những ngày posting date lớn hơn 12.05 VD 13.05 thì mình không lấy.
Lưu ý: dữ liệu ngày tháng thường là dữ liệu số, nhưng trong trường hợp của em thì dữ liệu ngày tháng này lấy từ SAP ra, và nó đang định dạng dấu chấm, khi lấy về Excel thì nó đang là dữ liệu kiểu Text

Và có thêm 1 vấn đề nữa, khi làm công thức khi mình kéo xuống hay có trường hợp D15, D16.... không có dữ liệu thì kéo công thức xuống dưới thường nó hay bị có số 0. Trường hợp này em mong muốn công thức kéo xuống 1000 dòng, thì nó phải là rổng, chứ không phải là số 0 nhé anh chị.
Nhờ anh chị hỗ trợ giúp em trường hợp này, em cảm ơn anh chị.
 

File đính kèm

Quy tắc chỉ đơn giản là: ngày clear công nợ nhỏ hơn ngày Posting date thì không lấy dữ liệu ở cột E
Trong trường hợp này: ngày clear là ngày 12.05 thì những ngày posting date lớn hơn 12.05 VD 13.05 thì mình không lấy.

Sao hại não thế bạn. Nhỏ hơn không lấy, lớn hơn cũng không lấy. Thế cần làm gì nữa đâu. Nhặt mỗi ngày đó ra thôi.
 
Chưa biết đúng hay sai thử xem :
Mã:
=IF(E2="","",(IF(TEXT(SUBSTITUTE(D2,".","/"),"dd/mm/yyyy")<=TEXT(SUBSTITUTE($A$2,".","/"),"dd/mm/yyyy"),E2,"")))
 
Chưa biết đúng hay sai thử xem :
Mã:
=IF(E2="","",(IF(TEXT(SUBSTITUTE(D2,".","/"),"dd/mm/yyyy")<=TEXT(SUBSTITUTE($A$2,".","/"),"dd/mm/yyyy"),E2,"")))
Công thức này rất đúng với yêu cầu của em. Em cảm ơn anh
Bài đã được tự động gộp:

Sao hại não thế bạn. Nhỏ hơn không lấy, lớn hơn cũng không lấy. Thế cần làm gì nữa đâu. Nhặt mỗi ngày đó ra thôi.
Cái này do em diễn đạt từ ngữ gây hiểu nhầm anh. Nói đúng là ngày clear công nợ >= posting date thì lấy dữ liệu. VD: 12.05 thì ngày nào nhỏ hơn hoặc = 12.05 thì lấy dữ liệu, còn 13.05 là lớn hơn ngày clear công nợ rồi, nên không lấy.
 
Cho mình tò mò 1 xíu, việc lập trình với SAP như vậy nó có thực sự rút ngắn thời gian cho công việc clear công nợ của bạn nhiều không. Vì mình biết là khách hàng mỗi người trả mỗi kiểu, có khi trả đủ hết hóa đơn, có khi trả 1 phần, hoặc là nhiều phần cho nhiều hóa đơn, như vậy thì làm sao để code đúng cho các trường hợp này.
 
Cho mình tò mò 1 xíu, việc lập trình với SAP như vậy nó có thực sự rút ngắn thời gian cho công việc clear công nợ của bạn nhiều không. Vì mình biết là khách hàng mỗi người trả mỗi kiểu, có khi trả đủ hết hóa đơn, có khi trả 1 phần, hoặc là nhiều phần cho nhiều hóa đơn, như vậy thì làm sao để code đúng cho các trường hợp này.
Rút ngắn được nhiều lắm bạn, bình thường giả sử bạn phải vào clear thủ công mất cả ngày trời, thì mình chỉ bấm VBA rồi làm việc khác, khi nào xong hết thì nó báo xong thui. Chỉ có 1 hạn chế là lúc chạy VBA thì Excel sẽ không hoạt động, không thao tác được. Và trường hợp clear công nợ làm bằng VBA cũng rất chua, mình phải hỏi hơn 20 bài trong diễn đàn giải pháp excel thì mới giải quyết được vụ clear công nợ này.
 
Vài năm trước mình cũng đã làm qua công việc clear nợ này, cty có 2000 khách hàng thường xuyên, bình quân mỗi ngày mình clear khoảng 60-80 khoản tiền lớn nhỏ, mình đã tận dụng các tính năng có sẵn trong SAP và mất khoảng 1 giờ đồng hồ clear nợ cho 1 ngày.
Nên mình cũng khá thắc mắc là với muôn màu muôn vẻ khách hàng như vậy mà bạn có thể code được thì đúng là bạn đã bỏ rất nhiều công nghiên cứu.
Mình đã nghiên cứu được vụ code cho việc out going, vì việc này thì dễ nắm quy luật hơn, còn vụ in coming thì chào thua.
 
Sao hại não thế bạn. Nhỏ hơn không lấy, lớn hơn cũng không lấy. Thế cần làm gì nữa đâu. Nhặt mỗi ngày đó ra thôi.
Ủa trang này kiêm luôn cả mục "tìm bạn" hở?
Vậy thì để giải thích việc "k** tồn tại não":
Nhỏ là vị thành niên, lấy ở tù bỏ mạng. Lớn thì do chưa có bằng lái máy bay, không dám đụng.
Cứ mừ tốm đến hăm nhăm thì lấy.
 
Lần chỉnh sửa cuối:
6.5.2023 Làm sao biết là tháng mấy?

Dữ liệu Date là một thứ phức tạp, chỉ kiểm soát được khi bạn nắm chắc các tính chất liên quan tới nó.
Cái này do phần mềm xuất ra, chắc nó đã phải có định dạng thống nhất rồi. Trong dữ liệu ở #1 thì nó là ngày.tháng.năm.
 
Cái này do phần mềm xuất ra, chắc nó đã phải có định dạng thống nhất rồi. Trong dữ liệu ở #1 thì nó là ngày.tháng.năm.

Bạn vẫn chưa nắm được mốc chốt vấn đề.
Dữ liệu xuất ở đâu ra, lấy ở đâu về không quan trọng, không có vai trò quyết định gì tới kết quả.
Quy ước định dạng thế nào (ngay.thang.nam) cũng không quyết định đâu là tháng, đâu là ngày.

Bạn cần luôn luôn và luôn luôn ghi nhớ: Cái chuỗi Date trả về giá trị ngày tháng năm nào có phụ thuộc vào định dạng của hệ thống (hệ điều hành).
Thôi từ từ tìm hiểu cho nhớ lâu.
 
Bạn cần luôn luôn và luôn luôn ghi nhớ: Cái chuỗi Date trả về giá trị ngày tháng năm nào có phụ thuộc vào định dạng của hệ thống (hệ điều hành).
Thôi từ từ tìm hiểu cho nhớ lâu.
Cái này mình có tìm hiểu rồi ạ.
Hình như DATEVALUE nó phụ thuộc vào ngày giờ hệ thống. Cụ thể trong bài nếu giờ hệ thống là dd/mm/yyyy thì lỗi thì phải bác ạ.
 
Sửa công thức của bạn @dangductuong2125 thành như sau được không anh?
Mã:
=IF(E2="","",(IF(TEXT(SUBSTITUTE(D2,".","/"),"yyyymmdd")<=TEXT(SUBSTITUTE($A$2,".","/"),"yyyymmdd"),E2,"")))
Bạn sửa lại như vầy cũng có đúng đâu.
Có thể dùng công thức này:
Mã:
=IF(SUMPRODUCT(MID(SUBSTITUTE(IF({1,0},$A$2,D2),".",REPT(" ",10)),{1;11;21},10)*10^{0;2;4}*{1,-1})>=0,E2,"")
 

File đính kèm

  • 1684381839037.png
    1684381839037.png
    114.1 KB · Đọc: 15
Tiện thể em hỏi luôn, có code nào thay đổi được ngày giờ hệ thống từ chuẩn Mỹ sang Pháp và ngược lại không ạ?
Nếu cần thì em sẽ đăng bài mới xin code, tránh chen ngang.
 
Web KT

Bài viết mới nhất

Back
Top Bottom