Dò tìm giá gần với ngày hiện tại (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hoangmy89

Thành viên mới
Tham gia
7/5/11
Bài viết
8
Được thích
1
Em chào các tiền bối. Em đang bị bí ngô xin chỉ dẫn giúp em.
Em có 1 file giá cho tất cả các sản phẩm nhưng thay vì mỗi lần cập nhật giá mới là sửa lại giá của sản phẩm thì cty em lại nhập thêm mã sản phẩm y hệt như vậy với giá mới và ghi chú ngày cập nhật.
Em làm hàm vlookup để dò tìm giá của sản phẩm thì kết quả là 1 giá ngẫu nhiên , em muốn công thức trả về giá có ngày cập nhật mới nhất em phải làm sao ạ?
 
làm hàm vlookup để dò tìm giá của sản phẩm thì kết quả là 1 giá ngẫu nhiên
Điêu!

Vlookup() trả về giá trị đầu tiên trong bảng dò (nếu tìm thấy).
công thức trả về giá có ngày cập nhật mới nhất
Còn phải xem nhập mới vào thì nhập vào chỗ nào?
Nếu nhập mới vào ở trên cùng của bảng -> Vlookup()
Nếu nhập mới vào ở dưới kế tiếp của bảng -> Lookup(), Aggregate()...
 
Chắc dữ liệu bạn í theo mẫu sau:
PHP:
'
Ngày         Mã HH      Đơn giá   '
1/13/2017     BN001     1234
1/15/2017     BN002     1235
1/17/2017     BN001     1236
1/19/2017     BN002     1237
1/21/2017     BN001     1238
1/23/2017     BN003     1239
1/25/2017     BN002     1240
1/27/2017     BN003     1241
1/29/2017     BN001     1242
1/31/2017     BN001    '1243 '
2/2/2017      BN010     1244
2/4/2017      BN003     '1245 '
2/6/2017      BN002     '1246 '
2/8/2017      BN010     '1247 '
. . .   . . .    . . .
 
Chắc dữ liệu bạn í theo mẫu sau:
PHP:
'
Ngày         Mã HH      Đơn giá   '
1/13/2017     BN001     1234
1/15/2017     BN002     1235
1/17/2017     BN001     1236
1/19/2017     BN002     1237
1/21/2017     BN001     1238
1/23/2017     BN003     1239
1/25/2017     BN002     1240
1/27/2017     BN003     1241
1/29/2017     BN001     1242
1/31/2017     BN001    '1243 '
2/2/2017      BN010     1244
2/4/2017      BN003     '1245 '
2/6/2017      BN002     '1246 '
2/8/2017      BN010     '1247 '
. . .   . . .    . . .
Dạ đúng vậy ạ, e muốn lấy giá của ngày31/1 cho mã BN001 là 1234 thì làm sao ạ?
 
Mình chỉ biết xài nhờ VBA thôi;
Nếu cần công thức, bạn cần đưa file giả lập lên; Sẽ có người trên cộng đồng giúp bạn.

Chúc ngày xuân vui vẻ!
 
Xét bảng dưới đây:

Untitled.png

Nếu cột A sort tăng dần, và bạn muốn tìm giá của BH001 gần nhất:

Mã:
=LOOKUP(10^10,1/($B$2:$B$13="BH001"),$C$2:$C$13)

Nếu cột A theo thứ tự bất kỳ:

Mã:
=LOOKUP(2,1/($A$2:$A$13=MAX(IF($B$2:$B$13="BH001",$A$2:$A$13,"")))/($B$2:$B$13="BH001"),$C$2:$C$13)

Ctrl-shift-enter
 
các anh chị cao thủ xem giúp em bài toán này nhé yêu cầu đặt ra là điền < hợp lệ và < loại> vào cột yêu cầu dựa trên điều kiện xét cột phòng và start day, start time, end time nếu trùng phòng trùng ngày và các khoảng giờ bị chéo nhau có nghĩ là cung giờ ngắn nằm trong cung giờ dài hơn mà là người đặt sau thì loại. Các anh chị giúp mình sử dụng bằng công thức nhé em vì mình không rành về vbacảm ơn các anh chị
 

File đính kèm

Dùng hàm COUNTIFS.

Ngoài lề: Bảng dữ liệu thiết kế không hợp lý, không có ghi được khách hàng lưu trú nhiều ngày

Có thể thay 3 cột : Start Date - Start Time - End Time

bằng 2 cột Start Date và End Date, trong mỗi cột này có sẵn Date+Time, như cột Timestamp
 
Dạ, file em là mỗi khách chỉ đặt trong một ngày ( ngày bắt đầu và ngày kết thúc là cùng một ngày ) chỉ chú ý đến giờ bắt đầu và giờ kết thúc , nếu thay bằng hai cột start date và end date phần time thì làm sao có thể biết được dòng nào có khoảng giờ nằm giữa khoảng giờ người đặt trước, bạn có thể giúp minh công thức countif s không , cảm ơn bạn nhiều.
 
Chào bạn phuocam và các anh chị diễn đàn, em có thêm 2 cột start time và end time , nhờ bạn phuocam và các anh chị giúp em công thức countifs em làm thử không được . em cảm ơn mọi người rất nhiều
 

File đính kèm

File đính kèm

Dạ, em sẽ kiểm lại dữ liệu, cảm ơn bạn phuocam và bạn HieuCD nhiều lắm, cảm ơn sự giúp đỡ nhiệt tình của 2 bạn và mọi người trên diễn đàn
 
Chưa hiểu ý @HieuCD , Trong file bạn test:
Phòng 09F-R1 ngày 26/2/2018:
Dòng 2 thời gian đặt phòng sớm hơn dòng 3 và dòng 4 -> 17:01:19 so với 17:02:39 và 17:03: 19
Dòng 2 nhận phòng tử 8:00 đến 17:30
Dòng 3 nhận phòng trùng: -> tử 8:30 đến 9:30, lúc này 2 chưa trả -> Loại
Dòng 4 nhận phòng trùng: -> tử 8:00 đến 10:30, lúc này 2 chưa trả -> Loại
Không tìm ra chỗ thiếu. Mong bạn chỉ giùm. haha! :)
 
Chưa hiểu ý @HieuCD , Trong file bạn test:
Phòng 09F-R1 ngày 26/2/2018:
Dòng 2 thời gian đặt phòng sớm hơn dòng 3 và dòng 4 -> 17:01:19 so với 17:02:39 và 17:03: 19
Dòng 2 nhận phòng tử 8:00 đến 17:30
Dòng 3 nhận phòng trùng: -> tử 8:30 đến 9:30, lúc này 2 chưa trả -> Loại
Dòng 4 nhận phòng trùng: -> tử 8:00 đến 10:30, lúc này 2 chưa trả -> Loại
Không tìm ra chỗ thiếu. Mong bạn chỉ giùm. haha! :)
Dòng 2 nhận phòng từ 8:00 đến 17:30
Dòng 4 nhận phòng trùng: -> từ 8:00 PM đến 10:30 PM là từ 20:00 đến 22:30, dòng 2 đã trả phòng nên không trùng
 
Chào bạn HieuCD, bạn gíup mình bắt lỗi trường hợp bạn ghi chú "xem lại" với đúng là với số liệu bạn giả lập thì kết quả chưa đúng trường hợp bạn giả lập từ 20:00 đến 22:30 bị loại, kết quả đúng là phải chấp nhận. Bạn HieuCD giúp mình với, cảm ơn bạn và mọi người .
 
chào bạn phuocam bạn, bạn giúp mình xem lại trường hợp này với ,cảm ơn bạn nhiều
 

File đính kèm

Chào buổi sáng anh HieuCD , anh ra tay giúp em với , em cảm ơn anh nhiều!
 
Vẫn còn thiếu điều kiện :p
hihi ^o^, giờ mới hiểu ý chủ thớt, cảm ơn anh @HieuCD chỉ điểm.

Chào buổi sáng anh HieuCD , anh ra tay giúp em với , em cảm ơn anh nhiều!
Bạn sốt ruột sớm rồi hén! anh em tụi tui còn sốt ruột hơn thế nữa mà! hihi ^o^.
Mã:
H2=IF(SUM((B2=B$1:B1)*(H$1:H1<>"Loại")*IFERROR(MATCH(F$1:G1,F2:G2),)),"Loại","")
Kết thúc bằng Ctrl+Shift+Enter.
Bạn xem file đính kèm. hihi ^o^
 

File đính kèm

dạ , em cũng hiểu sự nhiệt tình của anh chị và tinh thần của diễn đàn, em ko biết nói gì hơn ngoài "Cảm động và cảm ơn" vì vấn đề này của em là tồn đọng trước tết nhưng cuối năm ko dám làm phiền anh chị trên diễn đàn, Em cảm ơn mọi người rất nhiều
 
Công thức của bạn ưu tiên dòng phía trên, chưa có tham khảo cột A để ưu tiên cho thời gian đặt phòng sớm.
Chà! vụ án này hay đó anh! :)
Theo dữ liệu thì thấy chủ thớt giống như đã sắp xếp sort trước rồi, nhưng theo cách đặt vấn đề của anh thì....hihi ^o^ chắc phải suy nghĩ thêm rồi!
"Đâu cái điền" à nhen!
hihi ^o^
 
Chà! vụ án này hay đó anh! :)
Theo dữ liệu thì thấy chủ thớt giống như đã sắp xếp sort trước rồi, nhưng theo cách đặt vấn đề của anh thì....hihi ^o^ chắc phải suy nghĩ thêm rồi!
"Đâu cái điền" à nhen!
hihi ^o^
Bạn giải thích giùm tại sao dòng 15 và 18 bị loại?DatPhong.jpg
 

File đính kèm

:cc_surrender:! hihi ^o^! giải thích hổng được anh ơi!
như anh @phuocam có bàn đến bài #25, chỉ có cách sort trước cột C, A, thì công thức mới tính đúng. (file kèm)
Còn nếu dữ liệu "vũ như cẫn"! thì hihi ^o^, chịu khó anh em mình suy nghĩ thêm giải pháp khác.
hihi ^o^.
Chỉ cần Sort cột A cũng được mà.
 

File đính kèm

Dạ, file em không phải theo dõi thuê phòng khách sạn, mà là theo dõi để sếp phòng họp để tránh trường họp sếp trùng giờ rồicải nhau ah A đặt trước anh B đặt sau mà chiếm phòng trước. Cảm ơn bạn nhiều
 
Không tham gia vì không hiểu chủ Topic muốn làm cái gì? Nhưng nhìn cái hình giống theo dõi thuê phòng khách sạn quá.
Đúng rồi anh! nó đó anh.
Cột đầu là giờ đặt phòng các cột sau là ngày giờ định vào ở.

Chỉ cần Sort cột A cũng được mà.
Hay quá! anh đã giải quyết xong với sort cột A.
Chơi luôn ô H2 đi anh: =IF(COUNTIFS(B$1:B1,B2,F$1:F1,"<="&G2,G$1:G1,">="&F2,H$1:H1,""),"Loai","")
hihi ^o^
 
Lần chỉnh sửa cuối:
Đúng rồi anh! nó đó anh.
Cột đầu là giờ đặt phòng các cột sau là ngày giờ định vào ở.


Hay quá! anh đã giải quyết xong với sort cột A.
Chơi luôn ô H2 đi anh: =IF(COUNTIFS(B$1:B1,B2,F$1:F1,"<="&G2,G$1:G1,">="&F2,H$1:H1,""),"Loai","")
hihi ^o^
Tôi cũng có thấy H2, nhưng là dòng đầu tiên đặt phòng mà xét "Loại" hay không có quá "lãng phí" không?
Làm công thức từ H3 kéo xuống xong không thèm ngó đến H2. Híc!
 
Tôi cũng có thấy H2, nhưng là dòng đầu tiên đặt phòng mà xét "Loại" hay không có quá "lãng phí" không?
Làm công thức từ H3 kéo xuống xong không thèm ngó đến H2. Híc!
Tâm lý ai cũng ngài ngại khi thấy bị "hổng" 1 dòng, kiểu như "xây chừng" mà chừa "long đền" vậy! cái đó mới phí anh!
hihi ^o^
 
:)Cảm ơn anh HieuCD, anh Ba tê , bạn Mộng Thường, bạn phuocam và tất cả thành viên diễn đàn đã giúp đỡ em một cách nhiệt tình , mọi người vất vả rồi một lần nữa cảm ơn mọi người rất rất nhiều. Cảm ơn....cảm ơn ...!
 
các anh chị cao thủ xem giúp em bài toán này nhé yêu cầu đặt ra là điền < hợp lệ và < loại> vào cột yêu cầu dựa trên điều kiện xét cột phòng và start day, start time, end time nếu trùng phòng trùng ngày và các khoảng giờ bị chéo nhau có nghĩ là cung giờ ngắn nằm trong cung giờ dài hơn mà là người đặt sau thì loại. Các anh chị giúp mình sử dụng bằng công thức nhé em vì mình không rành về vbacảm ơn các anh chị
Do chủ thớt không miêu tả dữ liệu nên khó phân tích công thức.
Tôi hiểu như sau: dữ liệu ở cột A theo lôgíc được nhập theo thứ tự tăng dần. Tức vd. vào ngay 2018-02-05 7:00:00 có người gọi đặt phòng thì ta ghi vào A2. Sau đó có người gọi đặt phòng thì dĩ nhiên dữ liệu ghi vào A3 sẽ là thời điểm sau thời điểm 1. Cột B không nhất thiết tăng dần vì vd. người thứ nhất đặt phòng cho 2018-02-05 13:00:00-23:00:00 và người thứ 2 cho 2018-02-05 5:00:00-12:00:00. Tôi hiểu là khi có 2 đặt phòng có cùng ngày, cùng phòng mà thời gian chung đụng > 0 thì xóa đặt phòng thứ 2 - đặt phòng nằm ở dòng dưới, tức đặt phòng sảy ra ở thời điểm muộn hơn ở cột A.
---------------
Tôi không xem kỹ nhưng thấy có vài chỗ không hiểu trong bài #23. Không hiểu thôi chứ chưa khẳng định sai.
1. Tôi không hiểu tại sao dòng 15 bị loại. Vì trong các dòng trên nó thì chỉ có dòng 14 cùng phòng. Mà ở dòng 14 ta có đặt phòng cho ngày khác. Vậy tại sao dìng 15 bị loại?

2. Ta nhìn vào dòng 10 có Start Date = 06-03-2018 06:30 PM và End Date =06-03-2018 07:00 AM
Tức ai đó đặt phòng từ 18:30 tối đến 7:00 sáng?
Nếu bây giờ tôi sửa thành D10 = 6:30:00 = 6:30:00 AM thì công thức cho là dòng này bị loại. Nhưng tại sao lại bị loại? Vì trong các dòng ở trên thì chỉ có 1 dòng cùng ngày, cùng phòng là dòng 9, nhưng người ta ở trong khoảng từ 06-03-2018 08:00 AM đến 06-03-2018 05:30 PM cơ mà. Hai đặt phòng có xung đột đâu (dòng 9 từ 8:00 đến 17:30, dòng 10 từ 6:30 tới 7:00) mà dòng 10 bị loại?

3. Tôi không xét tiếp.
------------
Có một sự thật là cái lỗi của người khác nó như con voi nhìn rõ mồn một, còn lỗi của bản thân nó như con kiến, nhìn mãi không ra. Vì thế tôi đưa công thức của mình, xin mọi người test.
Tôi làm với cách hiểu dữ liệu như đã nói ở trên (cột A) và cho tập tin ở bài #8, tức không cần có cột Start Date và End Date.
Công thức bình thường cho F2
Mã:
=IF(COUNTIFS(B$1:B1,B2,C$1:C1,C2,F$1:F1,"")=SUMPRODUCT((B$1:B1=B2)*(C$1:C1=C2)*(F$1:F1="")*((E$1:E1<=D2)+(E2<=D$1:D1))),"","Loại")
 
Chỉ cần Sort cột A cũng được mà.
Công thức hay. Nhưng nếu sửa lại thành D3 = 1:00:00 AM, E3 = 8:00:00 AM thì công thức trả về "Loại". Nhưng có thể coi là không xung đột 2 khoảng (8:00:00-17:30) và (1:00:00-8:00:00) và coi dòng 3 là "Hợp lệ"
 
Công thức hay. Nhưng nếu sửa lại thành D3 = 1:00:00 AM, E3 = 8:00:00 AM thì công thức trả về "Loại". Nhưng có thể coi là không xung đột 2 khoảng (8:00:00-17:30) và (1:00:00-8:00:00) và coi dòng 3 là "Hợp lệ"
Chắc phải sửa lại các dấu "<=", ">=" thành "<" và ">".
PHP:
H3=IF(COUNTIFS(B$1:B2;B3;F$1:F2;"<"&G3;G$1:G2;">"&F3;H$1:H2;"");"Loai";"")
Đúng giờ mà không ra thì "uýnh lộn".
 
Chắc phải sửa lại các dấu "<=", ">=" thành "<" và ">".
PHP:
H3=IF(COUNTIFS(B$1:B2;B3;F$1:F2;"<"&G3;G$1:G2;">"&F3;H$1:H2;"");"Loai";"")
Đúng giờ mà không ra thì "uýnh lộn".
Êêê, công thức hay rồi. Nhưng nếu chiếu theo bài đầu tiên của chủ thớt, tức không có 2 cột Start Date và End Date thì công thức sẽ dài hơn.
 
Chắc phải sửa lại các dấu "<=", ">=" thành "<" và ">".
PHP:
H3=IF(COUNTIFS(B$1:B2;B3;F$1:F2;"<"&G3;G$1:G2;">"&F3;H$1:H2;"");"Loai";"")
Đúng giờ mà không ra thì "uýnh lộn".
Đã trót thì trét, công thức của anh nếu xài file bài 8, hổng có 2 cột Start Date và End Date, chỉ cần thêm tí hếu là ra mà, đo bằng "thước" chắc chừng "lóng tay" à anh.
  • Có 2 cột Start Date và End Date, thì:
    • H3=IF(COUNTIFS(B$1:B2;B3;F$1:F2;"<"&G3;G$1:G2;">"&F3;H$1:H2;"");"Loai";"")
  • Không có 2 cột Start Date và End Date, thì:
    • H3=IF(COUNTIFS(B$1:B1,B2,C$1:C1,C2,D$1: D1,"<"&E2,E$1:E1,">"&D2,G$1:G1,""),"Loai","")
hihi ^o^
 

File đính kèm

chỉ cần thêm tí hếu là ra mà, đo bằng "thước" chắc chừng "lóng tay" à anh.
Dài hơn 11 ký tự, tức 15%. Không hẳn là tí hếu nhưng cũng không nhiều :D
Tôi 2 lần khẳng định là công thức hay
Mục đích nói ra là để sửa cho trường hợp không có 2 cột Start Date và End Date. Vì trong các bài tiếp theo người ta có thêm 2 cột trên nhưng tôi không biết là họ thêm là do đã nhận thấy nó hay hay do "sức ép" :D
 
Dài hơn 11 ký tự, tức 15%. Không hẳn là tí hếu nhưng cũng không nhiều :D
Tôi 2 lần khẳng định là công thức hay
Mục đích nói ra là để sửa cho trường hợp không có 2 cột Start Date và End Date. Vì trong các bài tiếp theo người ta có thêm 2 cột trên nhưng tôi không biết là họ thêm là do đã nhận thấy nó hay hay do "sức ép" :D
Chúng ta, những anh em góp bài trên kể cả anh: người thì giải bài, người thì hỗ trợ kiểm tra và phản biện: đặt ra cho anh em mọi ngóc ngách của vấn đề, để chung tay góp sức cùng hỗ trợ giải quyết vấn đề cho chủ thớt. Tuy có thể nói là chưa đạt đến mức toàn mỹ theo đúng thực tế phát sinh, nhưng cũng đảm bảo thỏa mãn những yêu cầu cơ bản đặt ra.

Thành quả trên nhờ vào chúng ta đã đồng tâm không những "hướng" mà còn phải "dẫn" cụ thể đường đi nước bước cho các thành viên, một khi tìm đến diễn đàn, sẽ không bị hoang mang lạc lối. Đó mới chính là nét đẹp của sự hợp tác và cái lẽ của sự tường tận trong hướng dẫn kiến thức tại diễn đàn này.

Chính những lời tri ân rất chân thành của chủ thớt, chúng ta có thể đánh giá và xác tín một cách tích cực và lạc quan rằng: bằng sự hỗ trợ tận tình của anh em diễn đàn "Giải Pháp Excel", bạn ấy đã ngộ ra con đường sáng nhằm thực hiện tốt cho công việc của mình từ đây về sau, với tâm trạng hoan hỷ: tâm phục, khẩu phục.

Rất vui vì có sự hợp tác của anh
 
dạ , em vạn lần cảm ơn các anh chị đã giúp đỡ em một cách tận tình , công thức của các anh rất hay và chính xác , bỏ dấu "=" chỉ xét "<,>" cho ra kết quả tuyệt vời,(em đã copy dữ liêu thực tế vào ngồi dò cả đêm heheh <cần cù bu thông minh> , về 2 cột Start date và end date cũng hay dễ theo dõi dữ liệu, ban đầu em cxng dự tính thiết lập như vậy nhưng do người đặt phòng nhập liệu ko quen cách nhập ngày tháng năm + giờ phút nên em đành tách riêng ra . Cuối cùng là cảm xúc và suy nghĩ của em : các anh chị trên diễn đàn rất giỏi và giàu kinh nghiệm về chuyên môn và nhạy bén về số liệu, đặc biệt các anh chị rất tận tình, đầy nhiệt huyết đam mê. Một lần nữa em xin cảm tạ các anh chị trên diễn đàn , em chúc các anh chị thật nhiều sức khỏe và diễn đàn ngày càng phát triển. Cảm tạ ... cảm tạ....!
 

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

Back
Top Bottom