Trang 1/3 1 2 3 cuốicuối
Hiển thị kết quả tìm kiếm từ 1 đến 10 trên tổng số: 21
  1. #1
    Tham gia ngày
    09 2006
    Nơi Cư Ngụ
    Nha Trang
    Bài gởi
    69
    Cảm ơn
    23
    Được cảm ơn 7 lần trong 7 bài viết

    Excel có hàm chọn ngẫu nhiên trong vùng cho trước không? Nhờ chỉ giúp.

    Giả sử tôi có danh sách học sinh (B2:B30), ở ô C1 tôi muốn chọn ngẫu nhiên tên học sinh có trong danh sách đó được không? Đại khái như là phải trả bài ngày hôm đó. Rất mong mọi người giúp đỡ.
    Rất cảm ơn!
    Tập tin đính kèm Tập tin đính kèm
    Ngọc bất trác bất thành khí, Nhân bất học bất tri lý.

  2. #2
    Tham gia ngày
    06 2008
    Bài gởi
    24,241
    Cảm ơn
    13,912
    Được cảm ơn 43,193 lần trong 19,533 bài viết
    Trích Nguyên văn bởi tuanfkt View Post
    Giả sử tôi có danh sách học sinh (B2:B30), ở ô C1 tôi muốn chọn ngẫu nhiên tên học sinh có trong danh sách đó được không? Đại khái như là phải trả bài ngày hôm đó. Rất mong mọi người giúp đỡ.
    Rất cảm ơn!
    Bạn dùng hàm sau:
    PHP Code:
    =INDEX($B$2:$B$17,INT(RAND()*16)+1
    Cứ bấm F9 sẽ thấy nó chọn ngẩu nhiên

  3. Có 4 thành viên cảm ơn ndu96081631 về bài viết này:


  4. #3
    Tham gia ngày
    09 2008
    Nơi Cư Ngụ
    TP.HCM
    Bài gởi
    4,241
    Cảm ơn
    485
    Được cảm ơn 4,726 lần trong 2,801 bài viết
    Trích Nguyên văn bởi tuanfkt View Post
    Giả sử tôi có danh sách học sinh (B2:B30), ở ô C1 tôi muốn chọn ngẫu nhiên tên học sinh có trong danh sách đó được không? Đại khái như là phải trả bài ngày hôm đó. Rất mong mọi người giúp đỡ.
    Rất cảm ơn!
    Bạn sử dụng Index() kết hợp với hàm Rand(). Xem cách dùng trong file nha.
    Tập tin đính kèm Tập tin đính kèm

  5. Có 8 thành viên cảm ơn huuthang_bd về bài viết này:


  6. #4
    Hi,

    Theo chủ đề này thì cho em hỏi, nếu phải lấy danh sách ngẫu nhiên từ 1 danh sách thì làm thế nào?

    Thanks

  7. #5
    Tham gia ngày
    06 2008
    Bài gởi
    24,241
    Cảm ơn
    13,912
    Được cảm ơn 43,193 lần trong 19,533 bài viết
    Trích Nguyên văn bởi duongdylan View Post
    Hi,

    Theo chủ đề này thì cho em hỏi, nếu phải lấy danh sách ngẫu nhiên từ 1 danh sách thì làm thế nào?

    Thanks
    Đương nhiên là được! Giả sử bạn có 1 danh sách đặt tại A1:A30 (tức 30 phần tử)... Để lấy ra 1 danh sách ngẫu nhiên 10 phần tử từ danh sách trên thì giải thuật sẽ thế này:
    - Tạo 10 số ngẫu nhiên không trùng từ 1 đến 30 (tạm gọi là số thứ tự)
    - Dùng hàm INDEX, lọc trong danh sách 30 phần tử theo chỉ số dòng chính là số thứ tự vừa tìm
    ----------------
    Về việc tạo dãy số ngẫu nhiên không trùng ta dùng lập trình VBA đề tạo! Xem chi tiết tại đây: http://www.giaiphapexcel.com/forum/s...4ng-tr%C3%B9ng
    Giờ tôi làm thử cho bạn 1 file như yêu cầu (lấy 10 người ngẫu nhiên trong danh sách 30 người) ---> Xem thế nào nhé
    Tập tin đính kèm Tập tin đính kèm

  8. Thành viên sau cảm ơn ndu96081631 về bài viết này:


  9. #6

    Angry

    Trích Nguyên văn bởi ndu96081631 View Post
    Đương nhiên là được! Giả sử bạn có 1 danh sách đặt tại A1:A30 (tức 30 phần tử)... Để lấy ra 1 danh sách ngẫu nhiên 10 phần tử từ danh sách trên thì giải thuật sẽ thế này:
    - Tạo 10 số ngẫu nhiên không trùng từ 1 đến 30 (tạm gọi là số thứ tự)
    - Dùng hàm INDEX, lọc trong danh sách 30 phần tử theo chỉ số dòng chính là số thứ tự vừa tìm
    ----------------
    Về việc tạo dãy số ngẫu nhiên không trùng ta dùng lập trình VBA đề tạo! Xem chi tiết tại đây: http://www.giaiphapexcel.com/forum/s...4ng-tr%C3%B9ng
    Giờ tôi làm thử cho bạn 1 file như yêu cầu (lấy 10 người ngẫu nhiên trong danh sách 30 người) ---> Xem thế nào nhé
    Em đã đọc theo link kia rồi, nhưng do trình kém nên hok hiểu...nếu như file của em thế này thì bốc ra 10 số bất kỳ cho giải nhất, 10 số bất kỳ cho giải nhì thì làm sao anh nhỉ?
    Tập tin đính kèm Tập tin đính kèm

  10. #7
    Tham gia ngày
    06 2008
    Bài gởi
    24,241
    Cảm ơn
    13,912
    Được cảm ơn 43,193 lần trong 19,533 bài viết
    Trích Nguyên văn bởi duongdylan View Post
    Em đã đọc theo link kia rồi, nhưng do trình kém nên hok hiểu...nếu như file của em thế này thì bốc ra 10 số bất kỳ cho giải nhất, 10 số bất kỳ cho giải nhì thì làm sao anh nhỉ?
    Dữ liệu của bạn bố trí theo kiểu khác nên có lẽ phải viết cho bạn 1 hàm để phục vụ riêng
    PHP Code:
    Function GetRngList(SourceRange As RangeAmount As Long)
      
    Dim TmpArrTmpItemul As New CollectionAs Long
      Application
    .Volatile '<--- Neu muon ket qua thay doi khi bam F9
      TmpArr = SourceRange.Value
      GetRngList = ""
      Set ul = New Collection
      On Error Resume Next
      If Amount > SourceRange.Count Then Amount = SourceRange.Count
      With CreateObject("Scripting.Dictionary")
        For Each Item In TmpArr
          If Not IsEmpty(Item) Then ul.Add Item, CStr(Item)
        Next
        If ul.Count = 0 Then Exit Function
        If Amount > ul.Count Then Amount = ul.Count
        Do
          n = Int(Rnd() * ul.Count) + 1
          Tmp = ul.Item(n)
          If Not .Exists(Tmp) Then .Add Tmp, ""
        Loop Until .Count = Amount
        GetRngList = WorksheetFunction.Transpose(.Keys)
      End With
    End Function 
    Xem file
    Tập tin đính kèm Tập tin đính kèm
    thay đổi nội dung bởi: ndu96081631, 22-11-10 lúc 02:30 PM Lý do: Sửa lại code

  11. Thành viên sau cảm ơn ndu96081631 về bài viết này:


  12. #8
    Trích Nguyên văn bởi ndu96081631 View Post
    Dữ liệu của bạn bố trí theo kiểu khác nên có lẽ phải viết cho bạn 1 hàm để phục vụ riêng
    PHP Code:
    Function GetRngList(SourceRange As RangeAmount As Long)
      
    Dim TmpArrTmpItemul As New CollectionAs Long
      Application
    .Volatile '<--- Neu muon ket qua thay doi khi bam F9
      TmpArr = SourceRange.Value
      GetRngList = ""
      Set ul = New Collection
      On Error Resume Next
      If Amount > SourceRange.Count Then Amount = SourceRange.Count
      With CreateObject("Scripting.Dictionary")
        For Each Item In TmpArr
          If Not IsEmpty(Item) Then ul.Add Item, CStr(Item)
        Next
        If ul.Count = 0 Then Exit Function
        If Amount > ul.Count Then Amount = ul.Count
        Do
          n = Int(Rnd() * ul.Count) + 1
          Tmp = ul.Item(n)
          If Not .Exists(Tmp) Then .Add Tmp, ""
        Loop Until .Count = Amount
        GetRngList = WorksheetFunction.Transpose(.Keys)
      End With
    End Function 
    Xem file
    tại sao em lam giống vậy thì bị lỗi "#Name?" ?
    Tập tin đính kèm Tập tin đính kèm

  13. #9
    Tham gia ngày
    06 2008
    Bài gởi
    24,241
    Cảm ơn
    13,912
    Được cảm ơn 43,193 lần trong 19,533 bài viết
    Trích Nguyên văn bởi duongdylan View Post
    tại sao em lam giống vậy thì bị lỗi "#Name?" ?
    Trong file bạn có tí code nào đâu mà chẳng lỗi #NAME! chứ

  14. #10
    Trích Nguyên văn bởi ndu96081631 View Post
    Trong file bạn có tí code nào đâu mà chẳng lỗi #NAME! chứ
    Sorry, em quen lưu lại.

Trang 1/3 1 2 3 cuốicuối

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

Đề tài tương tự

  1. In Ủy Nhiệm Chi Trong Excel
    Viết bởi hoangdanh282vn trong chuyên mục Excel và Kế Toán
    Trả lời: 30
    Bài mới gởi: 19-04-14, 03:09 PM
  2. Tính tổng nhiều điều kiện trong Excel
    Viết bởi Hà Huy Duy trong chuyên mục Hướng dẫn sử dụng các hàm trong Excel
    Trả lời: 12
    Bài mới gởi: 18-07-13, 07:39 AM
  3. Làm thế nào để ghi nhiều dòng trong một ô của excel
    Viết bởi nguyenvanhuannlbk trong chuyên mục Định dạng, trình bày, in ấn bảng tính
    Trả lời: 4
    Bài mới gởi: 24-11-12, 09:12 PM
  4. Hỏi cách Upload dữ liệu từ nhiều file .html,.txt,... vào nhiều sheets trong Excel VBA
    Viết bởi hoangtu1506 trong chuyên mục Excel 2007, 2010 & 2013
    Trả lời: 0
    Bài mới gởi: 11-08-10, 03:02 PM
  5. Tổng hợp với nhiều điều kiện trong excel?
    Viết bởi pnp8858 trong chuyên mục Hàm và công thức Excel
    Trả lời: 1
    Bài mới gởi: 21-09-09, 03:53 AM

Bookmarks

Bookmarks

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.
  •  

Mudim v0.8 Tắt VNI Telex Viqr Tổng hợp
Chính tả Bỏ dấu kiểu mới  [Bật/Tắt (F9)]