Lấy Giá Trị Ngẫu Nhiên Dựa Trên Điều Kiện trong Google Sheets

Đôi khi chúng ta muốn lấy giá trị ngẫu nhiên dựa trên một điều kiện cụ thể trong Google Sheets. Vậy hàm phù hợp nào để thực hiện điều đó?

Có ba hàm trong Google Sheets mà bạn có thể dùng để thực hiện việc này. Đó là RAND, RANDBETWEEN và RANDARRAY. Tuy nhiên, không có hàm nào hỗ trợ điều kiện như một đối số.

Trong ba hàm trên, chúng ta có thể sử dụng hai hàm cuối cùng kết hợp với các hàm khác để đạt được mục đích của chúng ta. Dưới đây là ví dụ về cách sử dụng hai hàm đó.

Cách Lấy Giá Trị Ngẫu Nhiên Dựa Trên Điều Kiện trong Google Sheets

Để lấy giá trị ngẫu nhiên dựa trên điều kiện trong Google Sheets, bạn có thể sử dụng bất kỳ một trong hai hàm trên kết hợp với hàm FILTER. Dưới đây là các ví dụ cụ thể.

Giả sử chúng ta có dữ liệu với hai cột (danh sách). Cột đầu tiên chứa các ngày trong tháng và cột thứ hai chứa các ngày trong tuần/cuối tuần tương ứng.

Chúng ta muốn chọn ngẫu nhiên một số ngày dựa trên một ngày trong tuần cụ thể. Hãy xem làm thế nào để làm điều đó sử dụng hàm RANDBETWEEN và hàm RANDARRAY.

Có thể bạn sẽ không tìm thấy bất kỳ logic nào trong việc chọn ngày như trên. Đây chỉ là ví dụ. Nhưng với sự giúp đỡ của hướng dẫn này, bạn sẽ có thể sử dụng công thức kết hợp của tôi trong các vấn đề tương tự trên Google Sheets.

Dưới đây là một số công thức thú vị bạn có thể tham khảo.

Dữ liệu mẫu:

List to Pick Random Value Conditionally

Tùy chọn 1: RANDBETWEEN + Filter để Bao Gồm Điều Kiện

Ở đây, tôi sẽ trích xuất các ngày ngẫu nhiên trong đó số ngày là Chủ nhật. Tôi sẽ chỉ cho bạn cách trích xuất ngẫu nhiên tất cả các ngày dựa trên điều kiện trên và cách giới hạn số ngày.

Dưới đây là hướng dẫn từng bước để viết công thức.

Lưu ý điều kiện được đặt trong ô D2. Đầu tiên, sử dụng công thức dưới đây để lọc các ngày trong đó số ngày là Chủ nhật.

Công thức #1: Lọc Các Ngày Dựa Trên Tuần Lễ/ Cuối Tuần

' =filter(A2:A32,B2:B32=D2)

Với dữ liệu mẫu ở trên, công thức lọc trên sẽ trả về 4 ngày: 05/05/19, 12/05/19, 19/05/1926/05/19.

Để sắp xếp ngẫu nhiên các ngày này, chúng ta cần tạo ra 4 số ngẫu nhiên. Để làm điều đó, chúng ta có thể sử dụng hàm RANDBETWEEN như sau.

=ArrayFormula(Array_constrain(randbetween(Row(A1:A1000)^1,1000),4,1))

Hãy tham khảo Hướng dẫn về Các Hàm Google Sheets của tôi để tìm hiểu/hiểu tất cả bốn hàm được sử dụng trong công thức trên.

Công thức này có một vấn đề. Nó luôn trả về 4 số ngẫu nhiên. Nhưng nó có thể không khớp với kết quả lọc vì công thức lọc có thể trả về nhiều hoặc ít giá trị hơn. Vì vậy, hãy thay thế số 4 trong công thức trên bằng công thức lọc dưới đây.

=counta(filter(A2:A32,B2:B32=D2))

Sau đó, công thức RANDBETWEEN linh động sẽ trông như sau.

Công thức #2: Số Ngẫu Nhiên Giới Hạn là Số Dòng trong Kết Quả Lọc

=ArrayFormula(Array_constrain(randbetween(Row(A1:A1000)^1,1000),counta(filter(A2:A32,B2:B32=D2)),1))

Cuối cùng, sắp xếp kết quả của công thức #1 với phạm vi sắp xếp là công thức #2. Ở đây, tôi sử dụng SORTN thay vì SORT vì chúng ta có thể kiểm soát số dòng cần trả về.

Công thức chung: Sắp Xếp Tùy Ý Dựa Trên Số Ngẫu Nhiên

=sortn(formula 1,n,0,formula 2)

Ở đây, ngoài công thức 1 và công thức 2, bạn chỉ cần thay đổi ‘n’. Thay thế ‘n’ bằng 1 để lấy một ngày ngẫu nhiên, 2 để lấy hai ngày ngẫu nhiên và 9^9 để lấy tất cả các ngày ngẫu nhiên theo điều kiện. Bạn không được thay đổi số 0 trong công thức chung vì đó là chế độ ràng buộc trong SORTN.

Công thức cuối cùng:

=sortn(filter(A2:A32,B2:B32=D2),4,0,Array_constrain(randbetween(Row(A1:A1000)^1,1000),counta(filter(A2:A32,B2:B32=D2)),1),1)

Trong công thức cuối cùng này, tôi đã loại bỏ ArrayFormula mà là một phần của công thức 2. Lý do là khi kết hợp công thức 1 và công thức 2 trong công thức cuối cùng, tôi đã sử dụng SORTN. Nếu bạn đã sử dụng SORTN, bạn có thể loại bỏ ArrayFormula.

Tùy chọn 2: RANDARRAY + Filter để Bao Gồm Điều Kiện

Bạn cũng có thể sử dụng hàm RANDARRAY để lấy giá trị ngẫu nhiên dựa trên điều kiện trong Google Sheets. Đây là một cách đơn giản hơn so với cách trên.

Ở đây, tôi cũng sẽ sử dụng công thức 1 và công thức 2 trong SORTN. Công thức 1 là công thức Lọc như trên. Nhưng công thức 2 ở đây khác biệt vì chúng ta sử dụng RANDARRAY.

Dưới đây là công thức 2.

=randarray(COUNTA(FILTER(A1:A,B1:B=D2)),1)

Công thức này sẽ trả về 4 số ngẫu nhiên. Nó đơn giản hơn RANDBETWEEN vì mặc định nó là một công thức mảng.

Ở đây, công thức cuối cùng tuân theo cùng mẫu công thức chung như trên.

Extract Random Values Based on Condition in Google Sheets

=SORTN(FILTER(A1:A,B1:B=D2),4,0,randarray(COUNTA(FILTER(A1:A,B1:B=D2)),1),TRUE)

Vậy là xong. Cảm ơn vì đã đọc bài viết này. Chúc bạn thành công!

Thêm Tài Nguyên:

  1. Cách Chọn Một Tên Ngẫu Nhiên từ Một Danh Sách Dài trong Google Sheets.
  2. Cách Trộn Các Hàng trong Google Sheets Mà Không Cần Plugin.
  3. Bộ Chọn Tên Ngẫu Nhiên Dựa Trên Macro.
  4. Cách Ngẫu Nhiên Chọn N Số từ Một Cột trong Google Sheets.
  5. Cách Ngẫu Nhiên Trích Xuất Một Phần Trăm Nhất Định Các Hàng trong Google Sheets.

Related posts