Sắp xếp thứ tự theo ngày từ nhỏ đến lớn

  • Thread starter Thread starter salam
  • Ngày gửi Ngày gửi
Liên hệ QC

salam

Thành viên gắn bó
Tham gia
4/11/06
Bài viết
1,945
Được thích
1,896
Giới tính
Nam
Nghề nghiệp
Accountant
Nhờ các bác giúp em. Trong bảng tính của em có 2 sheet 1 để nhập và một xuất báo cáo. (Báo cáo số giờ/Km hoạt động của thiết bị)
Một TB có tối đa 2 phiếu xuất trong 1 ngày trên đó có ghi số Km hoặc giờ hoạt động. Khi nhập thì em nhập lung tung không theo trình tự từ nào cứ có phiếu là nhập. Bên sheet báo cáo (theo tháng mỗi ngày có 2 dong tưng ứng với 2 phiếu xuất) em muốn xuất báo cáo từ sheet nhập vào sheet báo cáo theo ngày và theo thứ tự từ nhỏ đến lớn theo tên thiết bị. Các bác giúp em với. Em xin cảm ơn các Bác.
 

File đính kèm

Bạn có thể giải thích rõ hơn dòng 22&23 cụ thể C22&C23 tại sao 96 lại phải dưới 237. Ý bạn muốn thêm tiêu thức nào nữa.

Khi Day=Day, IdNo=IdNo, Kmh=Kmh thì chưa làm xong, nếu thêm if nữa thì > 7 nó không chạy, đang nghiên cứu.
Còn nếu không có chữ trong cột D thì đơn giản hơn nhiều.
Bạn xem thử file.
 
Lần chỉnh sửa cuối:
ThuNghi đã viết:
Bạn có thể giải thích rõ hơn dòng 22&23 cụ thể C22&C23 tại sao 96 lại phải dưới 237. Ý bạn muốn thêm tiêu thức nào nữa.
Cái này mình chỉ cần căn cứ vào cột B tức là số hour/Km nếu nhỏ thì xếp trên còn lớn thì ở dưới theo ngày và theo thiết bị (Số giờ/Km tăng dần). những dòng em tô màu là những dòng bị lỗi khi em chọn thiết bị 303 (nó bị âm khi ta lấy số sau trừ số trước).
 
Rất khó có thể thực hiện vì dữ liệu của bác nhập vào ngẫu nhiên, dữ liệu bên sheet Detail ở trên hay dưới phụ thuộc vào thời điểm nhập trước hay sau. Không thể dùng Sort vì sẽ ảnh hưởng đến kết quả hàm Vlookup. Tôi nghĩ sẽ phải thay đổi lại quy luật cột phụ bên sheet DATA thì mới có cơ may làm được điều này.
 
Trong sheet DATA, ngay cột D có cái là 2 ký tự, có cái là 3 ký tự, có cái lại là TEXT.. tại sao thế? Nếu như cột D này thống nhất là 3 ký tự và toàn là số thì tôi nghĩ là tôi có thể làm dc đấy!
ANH TUẤN
 
anhtuan1066 đã viết:
Trong sheet DATA, ngay cột D có cái là 2 ký tự, có cái là 3 ký tự, có cái lại là TEXT.. tại sao thế? Nếu như cột D này thống nhất là 3 ký tự và toàn là số thì tôi nghĩ là tôi có thể làm dc đấy!
ANH TUẤN
Ở cột D sheet Data có thể định dạng là Text được và không quá 3 ký tự Các bác xem có giải pháp nào không.
 
Bạn xem thử file này có đúng ý ko? Tôi mới test sơ sơ (nhiều quá)...
Trong file có sữa lại công thức trong cột B sheet Data, thêm cột phụ H và sữa lại Vlookup trong Detail 1 chút...
Mến
ANH TUẤN
 
Lần chỉnh sửa cuối:
salam đã viết:
Cái này mình chỉ cần căn cứ vào cột B tức là số hour/Km nếu nhỏ thì xếp trên còn lớn thì ở dưới theo ngày và theo thiết bị (Số giờ/Km tăng dần). những dòng em tô màu là những dòng bị lỗi khi em chọn thiết bị 303 (nó bị âm khi ta lấy số sau trừ số trước).
Tôi góp vui một bài kết hợp Name và không dùng thêm cột phụ. Đã sửa quy luật cột phụ lại cho phù hợp thực tế!
 

File đính kèm

Vì Salam đã cho biết trước là trong 1 ngày có tối đa 2 phiếu xuất nên ta chỉ cần so sánh như sau:
1> Nếu chỉ có 1 phiếu xuất thì đánh dấu là 1 (hoặc 0)
2> Nếu có 2 phiếu thì so sánh chúng với nhau, cái nào nhỏ hơn thì đánh dấu là 1 (hoặc 0), cái còn lại đánh dấu 2 (hoặc 1)
Từ đây thì VLOOKUP dc rồi... Nói chung cách nào cũng dc nhưng cũng phải theo hướng so sánh 2 phiếu...
Mến
ANH TUẤN
 
Nếu Kmh không có những chữ Broken (chuyển sang note) thì dùng sumproduct sẽ nhẹ hơn nhiều. Mà sao bạn không dùng VBA nhỉ.
 
Lần chỉnh sửa cuối:
anhtuan1066 đã viết:
Vì Salam đã cho biết trước là trong 1 ngày có tối đa 2 phiếu xuất nên ta chỉ cần so sánh như sau:
1> Nếu chỉ có 1 phiếu xuất thì đánh dấu là 1 (hoặc 0)
2> Nếu có 2 phiếu thì so sánh chúng với nhau, cái nào nhỏ hơn thì đánh dấu là 1 (hoặc 0), cái còn lại đánh dấu 2 (hoặc 1)
Từ đây thì VLOOKUP dc rồi... Nói chung cách nào cũng dc nhưng cũng phải theo hướng so sánh 2 phiếu...
Mến
ANH TUẤN
Em cũng làm theo hướng tối đa có 2 phiếu thêm 1 hoặc 0 theo cột phụ đó những lại bị lỗi như em đã đưa lên (nếu phiếu cùng ngày mà số giờ/Km lớn hơn nhập trước số cùng ngày nhưng có số hour/Km nhỏ hơn).

Cám ơn các Bác Nhiều!
 
Salam làm gọn giúp công thức trong bài của tôi tại cột phụ bên sheet Data
=IF(So2-So1=0,C3,IF(So2-So1>So1,C3,C3&1))
Sửa lại là:
=IF(OR(So2-So1=0,So2-So1>So1),C3,C3&1)
Thân!
 
Thử Giải pháp VBA xem sao?

Thử Giải pháp VBA xem sao?

Xem trong file gửi kèm
 

File đính kèm

Bài toán này tôi nghĩ khó khăn là do ta tự gây ra bởi việc bố trí dử liệu ko hợp lý chứ ko phải do bài toán quá khó...
Bạn Salam nên xem lại, thử bố trí dữ liệu kiểu khác xem...
ANH TUẤN
 
anhtuan1066 đã viết:
Bài toán này tôi nghĩ khó khăn là do ta tự gây ra bởi việc bố trí dử liệu ko hợp lý chứ ko phải do bài toán quá khó...
Bạn Salam nên xem lại, thử bố trí dữ liệu kiểu khác xem...
ANH TUẤN
Vì yêu cầu nhập ngẫu nhiên mà Bác (có phiếu nào nhập phiếu đó), mà ý của Bài là khi nhập xong thì bên sheet detail tự động nhận giá trị ứng với các ĐK đặt ra. Còn dùng VBA kết hợp với hàm thì em nghĩ chỉ cần làm một nút sort + công thức là được.
 
Bố trí lại dử liệu nghĩa là vầy đây:
1> Sheet Data, cột E, H, G ko nên cho text vào
2> Tại sheet Detail, đặt con trỏ ở cell B10 và đặt name mãng:
Mã:
[B]DK_1[/B]=(Days=Detail!$A10)*(IDNo=Detail!$J$8)*(INDIRECT(Detail!B$6))
[B]DK[/B]=If(DK_1=0,"",DK_1)
Với B6 bạn gõ chử KmH (chính là Name KmH).. tương tự thế cho cell C6, D6.. vân vân
3> Cột A sheet Detail bạn ko nên merge cell, cứ đễ nguyên 2 cell cùng 1 ngày...
4> Với cái mãng DK như ở trên bạn luôn có 1 hoặc 2 số bên trong... Việc cuối cùng cũa bạn là dùng SMALL đễ lấy số nhỏ nhất và số thứ 2
Như vậy bạn thấy dc chứ... Khỏi mất công thêm vào bớt ra cột phụ gì cã... Sheet Data có thể bõ luôn cột B và C...
5> Giờ sẽ kết thúc mọi chuyện bằng 2 công thức:
Mã:
B10=C10=D10 =IF(COUNT(DK)<1,"",SMALL(DK,1))
Mã:
B11=C11=D11 =IF(COUNT(DK)<2,"",SMALL(DK,2))
Chú ý: số 1 và 2 trong hàm Small bạn có thể cho tự động luôn bằng cách kết hợp với MOD(ROW(),2)
Tôi ko rành công việc cũa bạn nên ko dám đi sâu.. nhưng tôi nghĩ logic cũa vấn đề sẽ là như vậy!
Mến
ANH TUẤN
 
Lần chỉnh sửa cuối:
+ Theo a tuấn thì sắp xếp lại số liệu

+ Đúng là bài này, dữ liệu cứ như tạo ngẫu nhiên hay sao? hay là thực tế là như vậy?

+ Không thấy tác giả nói gì về p/a giải pháp VBA nhỉ?
.
 
Cứ nhập ngẫu nhiên cũng ko sao.. nhưng đừng đễ Text lẩn lộn với Number... Thứ 2 là ko nên merge cell... Ý tôi là vậy đấy!
ANH TUẤN
 
Web KT

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

Back
Top Bottom