Nhờ Giúp Mình Hàm Sắp Xếp Theo Yêu Cầu !!!

Liên hệ QC

brunoquoc

Thành viên mới
Tham gia
15/9/13
Bài viết
17
Được thích
0
Mình có bài tập về Hàm Sắp Xếp nhờ mọi người giúp mình nha !!!
Yêu cầu bài tập mình có viết để trong file đính kèm !!!
Thanks nhìu nhìu -\\/.-\\/.
 

File đính kèm

Đáng tiếc là không gửi được file đính kèm. Yêu cầu 1 :- Nhập số thứ tự từ 1 đến 51 vào cells H2 đến H52 - Nhập công thức IF(H2>COUNTIF($G$2:$G$52,">=0"),"",SMALL($G$2:$G$52,H2)) vào cell I2. Sau đó copy xuống các cell còn lại từ I2 đến I52 là đúng theo đầu bài. Yêu cầu 2 : Nếu có 02 số thì chỉ cần dùng hàm Min,Max,Left,Right là giải quyết được, Để tìm cách gửi file đính kèm sẽ tiếp tục.
 
Mình vẫn chưa hiểu lắm :( , nhờ bạn gtri cố gắng gửi file đính kèm giúp mình nha !!! thanks bạn nhìu lắm !!!
 
Cám ơn bạn rất nhiều, nhờ bạn giúp mình câu 2 luôn nha :)
Mình còn một câu nữa, nhờ bạn chỉ giup mình hàm copy dữ liệu cột vừa mới sắp xếp được ở yêu cầu 1 sang một sheet hay một file excell khác được không ???
 
File này lập với "Số cho sẵn" có 02 số : http://upfile.vn/rau4/SX_Thu_Tu_YC2.xlsx. Nếu nhiều hơn, bạn cần làm rõ kết quả yêu cầu là sẽ có cách giải quyết.
 
Chỉ bằng 1 cái lich chuột là có KQ của câu 2

Bạn chọn ngẫu nhiên 1 số theo hướng dẫn & có KQ

Chúc vui

--=0 ;;;;;;;;;;; --=0 }}}}}
 

File đính kèm

Có lẽ cách sắp xếp bằng VBA chưa được sát với yêu cầu. Theo đầu bài : Mỗi phần tử của số đã cho sẽ có 2 kiểu kết hợp. Lần thứ nhất, phần tử đó sẽ là hàng chục và hàng đơn vị là các số từ 0-9. Lần thứ 2, phần tử đó sẽ là hàng đơn vị và hàng chục là các số từ 0-9. Tổng cộng mỗi phần tử sẽ xuất hiện 20 lần
 
[Thongbao]Có lẽ cách sắp xếp bằng VBA chưa được sát với yêu cầu. Theo đầu bài : Mỗi phần tử của số đã cho sẽ có 2 kiểu kết hợp. Lần thứ nhất, phần tử đó sẽ là hàng chục và hàng đơn vị là các số từ 0-9.
Lần thứ 2, phần tử đó sẽ là hàng đơn vị và hàng chục là các số từ 0-9. Tổng cộng mỗi phần tử sẽ xuất hiện 20 lần[/Thongbao]

(/ậy bạn đã thử với file đính kèm chưa vậy? Nó giống với ví dụ mà chủ topic đề ra mà!

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [B3]) Is Nothing Then
    ReDim Arr(1 To 80, 1 To 1)
    Dim Ch1 As Byte, DV1 As Byte, Ch2 As Byte, DV2 As Byte, J As Byte
    
    Ch1 = [c3].Value \ 10:          DV1 = [c3].Value Mod 10
    Ch2 = [c4].Value \ 10:          DV2 = [c4].Value Mod 10
    For J = 1 To 40
        If J < 11 Then
            Arr(J, 1) = CStr(Ch1 * 10 + J)
            Arr(J + 40, 1) = CStr(Ch2 * 10 + J)
        ElseIf J < 21 Then
            Arr(J, 1) = CStr((J - 11) * 10 + DV1)
            Arr(40 + J, 1) = CStr((J - 11) * 10 + DV2)
        ElseIf J < 31 Then
            Arr(J, 1) = CStr(DV1 * 10 + J - 20)
            Arr(40 + J, 1) = CStr(DV2 * 10 + J - 20)
        ElseIf J < 41 Then
            Arr(J, 1) = CStr((J - 31) * 10 + DV1)
            Arr(40 + J, 1) = CStr((J - 31) * 10 + DV2)
        End If
    Next J
    [e3].Resize(80).Value = Arr()
 End If
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Gửi bạn file so sánh này http://upfile.vn/raw4/SapXepSo1.xls. Có lẽ là hơi khác bạn à. Trong yêu cầu không có số nào lặp lại 2 lần, và khi phần tử đó là hàng chục thì hàng đơn vị chỉ có từ 0-9. Bạn xem thử lại đoạn j từ 11 tới 40 xem sao
 
Dúng là code còn sai với ví dụ của chủ topic

Fải vầy mới đúng mẫu nè:

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [B3]) Is Nothing Then
    ReDim Arr(1 To 80, 1 To 1)
    Dim Ch1 As Byte, DV1 As Byte, Ch2 As Byte, DV2 As Byte, J As Byte
    
    Ch1 = [c3].Value \ 10:          DV1 = [c3].Value Mod 10
    Ch2 = [c4].Value \ 10:          DV2 = [c4].Value Mod 10
    For J = 1 To 40
        If J < 11 Then
            Arr(J, 1) = CStr(Ch1 * 10 + J - 1)      '*'
            Arr(J + 40, 1) = CStr(Ch2 * 10 + J - 1) '*'
        ElseIf J < 21 Then
            Arr(J, 1) = CStr((J - 11) * 10 + DV1)
            Arr(40 + J, 1) = CStr((J - 11) * 10 + DV2)
        ElseIf J < 31 Then
            Arr(J, 1) = CStr(DV1 * 10 + J - 21)     '*'
            Arr(40 + J, 1) = CStr(DV2 * 10 + J - 21) '*'
        ElseIf J < 41 Then
            Arr(J, 1) = CStr((J - 31) * 10 + DV1)
            Arr(40 + J, 1) = CStr((J - 31) * 10 + DV2)
        End If
    Next J
    [e3].Resize(80).Value = Arr()
 End If
End Sub
 
Bạn hướng dẫn mình làm sao add đoạn code này vào được ko? mình chưa sử dụng đến code trong excell bao giờ :(
Thanks bạn nha !!!
 
Mình chỉ cần 2 số theo giống như yêu cầu thui, cám ơn bạn rất nhiều nha, yêu cầu đã được giải quyết :))

Mình còn một yêu cầu nữa, ở yêu cầu 1, mình muốn đoạn vừa mới sắp xếp thứ tự xong sẽ tự động copy sang một file excell khác và một sheet khác được không ???
Cám ơn gtri nhiều %#^#$
 
Bạn hướng dẫn mình làm sao add đoạn code này vào được ko? mình chưa sử dụng đến code trong excell bao giờ :(
Thanks bạn nha !!!

Ở #7 có file rồi mà.
Bạn mở file đó lên & copy macro ở bài cuối cho đè lên toàn bộ macro cũ là OK thôi.
(Mình xài E2003 nên chỉ có thể nói vậy thôi)

 
File này lập với "Số cho sẵn" có 02 số : http://upfile.vn/rau4/SX_Thu_Tu_YC2.xlsx. Nếu nhiều hơn, bạn cần làm rõ kết quả yêu cầu là sẽ có cách giải quyết.

Chào bạn, cả hai yêu cầu đã được giải quyết, nhưng ở yêu cầu 2 bị một lỗi nhỏ, mình có chú thích trong file đính kèm, và có thêm một yêu cầu nữa, nhờ bạn giải quyết vấn đề này giúp mình nha !!! Cám ơn bạn nhiều lắm !!!
 

File đính kèm

Yêu cầu này đã giải được bằng VBA rồi mà; Bạn xem trong file

[thongbao]Khi cho số cho sẵn có số 0 ở hàng chục thì khi xuất ra nó ko xuất ra đúng 2 chữ số (dòng 61)
- Vậy làm cách nào để xuất ra tất cả đều là 2 chữ số đươc ko ???[/thongbao]

Thệm chí 1 con 0 cũng OK luôn!
 

File đính kèm

Đây là lỗi nhập số liệu chứ không phải lỗi công thức bạn à. những số từ 0-9 phải nhập cả số 0 đằng trước. VD số 1 nhập là '01, số 8 nhập là '08 ( có dấu ' đầu tiên).Gửi bạn xem lại http://upfile.vn/ao07/SX_Thu_Tu_YC2.xlsx.
 
Đây là lỗi nhập số liệu chứ không phải lỗi công thức bạn à. những số từ 0-9 phải nhập cả số 0 đằng trước. VD số 1 nhập là '01, số 8 nhập là '08 ( có dấu ' đầu tiên).Gửi bạn xem lại http://upfile.vn/ao07/SX_Thu_Tu_YC2.xlsx.

Mình đã hiểu rồi, cám ơn bạn rất nhiều
Nhờ bạn xử lý giúp mình yêu cầu còn lại luôn nha, mình có làm một file khác để dễ hiểu hơn, có sẵn yêu cầu trong file !!! Cám ơn bạn !!!
 

File đính kèm

Đây là lỗi nhập số liệu chứ không phải lỗi công thức bạn à. những số từ 0-9 phải nhập cả số 0 đằng trước. VD số 1 nhập là '01, số 8 nhập là '08 ( có dấu ' đầu tiên).Gửi bạn xem lại http://upfile.vn/ao07/SX_Thu_Tu_YC2.xlsx.

Mình đã làm dc các yêu cầu đặt ra, nhưng còn một lỗi ở yêu cầu 2, nếu mình ko đánh 2 số cần sắp xếp vào thì có cách nào sửa code để nó ko hiện lên bên cột sắp xếp ko?
Yêu cầu là, khi không đánh số cần sắp xếp vào thì cột sắp xếp sẽ ko hiện gì cả, khi đánh vào mới hiện lên, minh có chú thích trong file đính kèm, bẹn xem giúp mình nha !!!!
 

File đính kèm

Mình đã làm dc các yêu cầu đặt ra, nhưng còn một lỗi ở yêu cầu 2, nếu mình ko đánh 2 số cần sắp xếp vào thì có cách nào sửa code để nó ko hiện lên bên cột sắp xếp ko?
Yêu cầu là, khi không đánh số cần sắp xếp vào thì cột sắp xếp sẽ ko hiện gì cả, khi đánh vào mới hiện lên, minh có chú thích trong file đính kèm, bẹn xem giúp mình nha !!!!

Gửi bạn http://upfile.vn/mZc3/SapXepThuTu.xlsx, xem đã được chưa.
 
Web KT

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

Back
Top Bottom