Lọc 1 số lượng từ nhất định trong Excel 2007 (1 người xem)

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

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

lian109

Thành viên mới
Tham gia
24/10/10
Bài viết
8
Được thích
0
Chào tất cả mọi người ,

Rất cảm ơn bạn đã dành thời gian đọc topic mình.
Mình có 1 vấn đề hiện rất cần sự trợ giúp của các bạn.
Nói dễ hiểu thế này . Mình có 1 file excel gồm 100 từ . Làm thế nào mình có thể lọc ( xuất ra ) 30 từ ( có thể số khác) bất kỳ trong 100 từ đó.

Cảm ơn các bạn 1 lần nữa,
Thân mến.
 
Chào tất cả mọi người ,

Rất cảm ơn bạn đã dành thời gian đọc topic mình.
Mình có 1 vấn đề hiện rất cần sự trợ giúp của các bạn.
Nói dễ hiểu thế này . Mình có 1 file excel gồm 100 từ . Làm thế nào mình có thể lọc ( xuất ra ) 30 từ ( có thể số khác) bất kỳ trong 100 từ đó.

Cảm ơn các bạn 1 lần nữa,
Thân mến.
Đưa file dữ liệu mẫu lên đi, kèm theo dữ liệu mẫu muốn lọc ra, lọc theo điều kiện nào.
Nói như vậy "ai hiểu chết liền".
 
Chào tất cả mọi người ,

Rất cảm ơn bạn đã dành thời gian đọc topic mình.
Mình có 1 vấn đề hiện rất cần sự trợ giúp của các bạn.
Nói dễ hiểu thế này . Mình có 1 file excel gồm 100 từ . Làm thế nào mình có thể lọc ( xuất ra ) 30 từ ( có thể số khác) bất kỳ trong 100 từ đó.

Cảm ơn các bạn 1 lần nữa,
Thân mến.
100 từ này nằm trong 1 ô hay 100 ô vậy bạn?
Có thể dùng hàm RAND() kết hợp với hàm tách chuỗi để làm.
 
Cảm ơn 2 bạn nhé. Đây là file mình cần lọc. Mình có 50 từ trong 50 ô. Cụ thể bây giờ mình muốn lọc 20 từ bất kỳ ( dạng như tổ hợp chọn 20 trong 50 từ đó ) sang một sheet khác, thì mình làm cách nào nhỉ.
 

File đính kèm

Đưa ra 2 cách để bạn tùy chọn: dùng hàm ngẫu nhiên và sắp xếp
Cách 2 là dùng macro
Xem cách làm trong file đính kèm.
 

File đính kèm

Lần chỉnh sửa cuối:
Đưa ra 2 cách để bạn tùy chọn: dùng hàm ngẫu nhiên và sắp xếp
Cách 2 là dùng macro
Xem cách làm trong file đính kèm.
Cảm ơn bạn rất nhiều. Mình còn 1 số thắc mắc
1) Nhấn nút để copy số phân tử cần chọn sang sheet2. Mình chưa hiểu rõ excel lắm bạn có thể nói rõ rõi giúp mình được chứ
2) Nếu mình muốn tổ hợp chọn 20,30 hay ( 1 số lượng cụ thể nào đó ) trong kho từ thứ 2 ( file đính kèm) ( từ nằm ở nhiều cột chứ không phải 1 cột như trước nữa ) thì mình làm như thế nào để lọc số từ đó ra xếp theo 1 cột.

Cảm ơn bạn nhiều.
 

File đính kèm

Cảm ơn bạn rất nhiều. Mình còn 1 số thắc mắc
1) Nhấn nút để copy số phân tử cần chọn sang sheet2. Mình chưa hiểu rõ excel lắm bạn có thể nói rõ rõi giúp mình được chứ
2) Nếu mình muốn tổ hợp chọn 20,30 hay ( 1 số lượng cụ thể nào đó ) trong kho từ thứ 2 ( file đính kèm) ( từ nằm ở nhiều cột chứ không phải 1 cột như trước nữa ) thì mình làm như thế nào để lọc số từ đó ra xếp theo 1 cột.

Cảm ơn bạn nhiều.
Không hiểu bài này áp dụng vào chuyện gì.
Nhiều dòng nhiều cột dữ liệu thì phải dùng VBA thôi.
Xem File này, muốn thêm bao nhiêu dòng, cột ở sheet1 cũng được.
Ở sheet2, Nhập số vào ô F1, ấn nút 1 lần sẽ chọn ngẫu nhiên 1 lần
 

File đính kèm

Bạn có biết cách thiết lập macro chưa? nếu chưa thì hãy tìm đọc thông tin về vấn đề này!
File đính kèm dưới đây, sử dụng macro để tạo ngẫu nhiên k phần tử (nhập số k này ở ô F1 trong sheet2) bằng cách nhấn nút lệnh.
Trong file tôi có yêu cầu tổ chức kho từ trong sheet1 đúng như file mẫu "Kho từ 2" của bạn: bắt đầu từ ô A1 dữ liệu trải qua các dòng và cột, được phép để dữ liệu trống ở các ô cuối trong cột cuối.
 

File đính kèm

Bạn có biết cách thiết lập macro chưa? nếu chưa thì hãy tìm đọc thông tin về vấn đề này!
File đính kèm dưới đây, sử dụng macro để tạo ngẫu nhiên k phần tử (nhập số k này ở ô F1 trong sheet2) bằng cách nhấn nút lệnh.
Trong file tôi có yêu cầu tổ chức kho từ trong sheet1 đúng như file mẫu "Kho từ 2" của bạn: bắt đầu từ ô A1 dữ liệu trải qua các dòng và cột, được phép để dữ liệu trống ở các ô cuối trong cột cuối.
Dựa vào giải thuật của siwtom ở đây:
http://www.giaiphapexcel.com/forum/showthread.php?66810-Cần-công-thức-tính-một-dạng-Tổ-hợp
Tôi sửa lại code 1 chút cho phù hợp CSDL trên Excel như sau:
PHP:
Function UniqueRandList(ByVal sArray, ByVal Amount As Long)
  Application.Volatile
  On Error GoTo ExitFunc
  Dim Index As Long, k As Long, Bottom As Long, Top As Long, tmpArr, Arr()
  tmpArr = ConvertTo1DArray(sArray, True)
  If IsArray(tmpArr) Then
    If Amount > UBound(tmpArr) Then Exit Function
    ReDim Arr(1 To Amount, 1 To 1)
    Bottom = 1: Top = UBound(tmpArr)
    Randomize
    For k = 1 To Amount
      Index = Int(Rnd() * (Top - Bottom + 1)) + Bottom
      Arr(k, 1) = tmpArr(Index)
      tmpArr(Index) = tmpArr(k)
      Bottom = Bottom + 1
    Next k
    UniqueRandList = Arr
  End If
ExitFunc:
End Function
Thêm 1 hàm hổ trợ convert sang mảng 1 chiều:
PHP:
Function ConvertTo1DArray(ByVal sArray, IgnoreBlanks As Boolean)
  Dim Arr(), tmpArr, n As LongPtr, Item
  On Error Resume Next
  tmpArr = sArray
  For Each Item In tmpArr
    If IgnoreBlanks = False Or Len(Trim(CStr(Item))) > 0 Then
      n = n + 1
      ReDim Preserve Arr(1 To n)
      Arr(n) = Item
    End If
  Next
  If n Then ConvertTo1DArray = Arr
End Function
Giờ áp dụng cũng rất dễ. Ví dụ muốn lấy 20 phần tử ngẫu nhiên trong dữ liệu ở sheet1, ta có thể làm như sau:
- Quét chọn 20 dòng, từ A1 đến A20 (ở sheet2)
- Gõ vào thanh Formula công thức: =UniqueRandList(Sheet1!A1:F34,20)
- Bấm tổ hợp phím Ctrl + Shift + Enter để kết thúc
---------------------
Dùng hàm tự tạo, khả năng tùy biến sẽ cao hơn sub
 

File đính kèm

Lần chỉnh sửa cuối:

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

Back
Top Bottom