토. 8월 2nd, 2025

Welcome, Excel enthusiasts! Have you ever needed to inject a dose of unpredictability into your spreadsheets? Whether you’re building a financial model, simulating outcomes, creating a lottery, or just need some dummy data, generating random numbers is a fundamental skill. Excel provides powerful functions for this purpose: RANDBETWEEN and the more modern RANDARRAY.

While RANDBETWEEN has been a classic for generating single random integers, RANDARRAY offers a whole new level of flexibility by delivering arrays of random numbers. When used together or understood in tandem, they unlock dynamic possibilities you might not have considered. Let’s dive in! 🚀


Understanding the Fundamentals

Before we combine them, let’s briefly review what each function does.

1. RANDBETWEEN (The Classic Integer Generator)

RANDBETWEEN is straightforward and has been around for a long time. It returns a random integer between two specified numbers (inclusive).

  • Syntax: RANDBETWEEN(bottom, top)
  • Arguments:
    • bottom: The smallest integer RANDBETWEEN will return.
    • top: The largest integer RANDBETWEEN will return.
  • Example: To get a random number between 1 and 100:
    =RANDBETWEEN(1, 100)
  • Key Feature: It’s a volatile function, meaning it recalculates every time the workbook is opened or a change is made to any cell. This is important to remember! ⚠️

2. RANDARRAY (The Modern Array Generator)

RANDARRAY is a newer dynamic array function, available in Excel 365. It’s incredibly versatile, allowing you to generate an array of random numbers.

  • Syntax: RANDARRAY([rows], [columns], [min], [max], [integer])
  • Arguments:
    • rows (Optional): The number of rows to fill. Default is 1.
    • columns (Optional): The number of columns to fill. Default is 1.
    • min (Optional): The minimum value. Default is 0.
    • max (Optional): The maximum value. Default is 1.
    • integer (Optional): TRUE for whole numbers, FALSE for decimal numbers. Default is FALSE.
  • Example: To get 5 random decimal numbers between 0 and 1:
    =RANDARRAY(5)
  • Example: To get 3 rows and 2 columns of random integers between 1 and 100:
    =RANDARRAY(3, 2, 1, 100, TRUE)
  • Key Feature: Like RANDBETWEEN, RANDARRAY is also a volatile function. It spills its results into adjacent cells if there’s enough space. 📊

Master the Combination & Advanced Use Cases

While RANDARRAY can effectively replace RANDBETWEEN for many tasks, especially when generating multiple integers, understanding how to leverage both, or how RANDBETWEEN can feed into RANDARRAY, opens up more dynamic scenarios.

1. Generating Multiple Random Integers: The RANDARRAY Advantage (Replacing RANDBETWEEN‘s Repetitive Use)

If you need a list of, say, 10 random integers between 1 and 100, the old way was to type =RANDBETWEEN(1,100) and drag it down 10 cells. With RANDARRAY, it’s a single formula that spills:

  • Traditional (Repeated RANDBETWEEN): Type =RANDBETWEEN(1,100) in A1, then drag down to A10.
  • Modern (Single RANDARRAY):
    =RANDARRAY(10, 1, 1, 100, TRUE)

    This formula in a single cell will automatically spill 10 random integers in a column.

    • Tip: RANDARRAY with TRUE for the integer argument is the direct and more efficient replacement for getting multiple random integers where RANDBETWEEN was previously dragged.

2. Dynamic Range Generation for RANDARRAY 📈

What if you want to generate a random number of random numbers? You can use RANDBETWEEN to define the rows or columns argument for RANDARRAY.

  • Scenario: Generate a random number of random scores (between 0 and 100). The number of scores should be between 5 and 15.
  • Formula:
    =RANDARRAY(RANDBETWEEN(5, 15), 1, 0, 100, TRUE)

    This formula will produce a list of random integers, and the length of that list will be random (between 5 and 15 rows).

3. Picking Random Items from a List 🎯

This is a classic use case for random numbers: selecting random entries from a predefined list. You combine RANDBETWEEN (or RANDARRAY for multiple picks) with INDEX, CHOOSECOLS, or CHOOSEROWS.

  • Scenario 1: Pick one random item from a list. Let’s say your list of items is in A1:A10.

    =INDEX(A1:A10, RANDBETWEEN(1, ROWS(A1:A10)))
    • ROWS(A1:A10) dynamically calculates the number of rows in your list (which is 10).
    • RANDBETWEEN(1, 10) generates a random row number.
    • INDEX then retrieves the item from that random row.
  • Scenario 2: Pick multiple random items from a list (with possible duplicates). To pick 3 random items from A1:A10.

    =CHOOSEROWS(A1:A10, RANDARRAY(3, 1, 1, ROWS(A1:A10), TRUE))
    • RANDARRAY(3, 1, 1, ROWS(A1:A10), TRUE) generates 3 random row numbers between 1 and 10.
    • CHOOSEROWS then picks the rows corresponding to those random numbers.

4. Generating Unique Random Numbers ✨

A common challenge with random number generation is ensuring uniqueness. RANDARRAY can generate duplicates. If you need a specific number of unique random values, you can combine UNIQUE with RANDARRAY.

  • Scenario: Generate 5 unique random integers between 1 and 20.
  • Formula:
    =TAKE(UNIQUE(RANDARRAY(10, 1, 1, 20, TRUE)), 5)
    • Explanation:
      • RANDARRAY(10, 1, 1, 20, TRUE): We intentionally generate more random numbers (e.g., 10 instead of 5) than we need. This increases the probability of getting enough unique values within the desired range.
      • UNIQUE(...): This function then extracts only the unique values from the generated list.
      • TAKE(..., 5): Finally, TAKE selects the first 5 unique values from the list. If there aren’t 5 unique values after the UNIQUE step, it will return fewer than 5. Adjust the initial RANDARRAY‘s row count (e.g., 20 instead of 10) if you consistently need more unique values from a small range.

5. Shuffling a List Randomly 🔀

Want to randomize the order of a list? SORTBY combined with RANDARRAY is your friend.

  • Scenario: Randomly shuffle a list of names in B1:B5.
  • Formula:
    =SORTBY(B1:B5, RANDARRAY(ROWS(B1:B5)))
    • RANDARRAY(ROWS(B1:B5)): Generates a list of random decimal numbers, one for each item in your list.
    • SORTBY: Sorts your original list (B1:B5) based on the random numbers generated. Since the random numbers are different each time, the sort order will be random.

Important Considerations

  • Volatility: Remember, both RANDBETWEEN and RANDARRAY are volatile. This means they recalculate every time you make a change in your spreadsheet, press F9, or open the workbook.
    • Freezing Values: If you need the random numbers to stay fixed after generation (e.g., for a lottery draw), you must “freeze” them.
      1. Select the cell(s) containing the random numbers.
      2. Copy (Ctrl+C or Cmd+C).
      3. Paste Special -> Values (Alt+E+S+V or Right-Click -> Paste Special -> Values). This will replace the formulas with their current numeric values.
  • Legacy INT(RAND()): For users on older Excel versions without RANDARRAY, or for those who prefer it, INT(RAND() * (max - min + 1) + min) is the classic way to generate a single random integer. However, RANDARRAY is superior for array generation in modern Excel.

Conclusion

RANDBETWEEN remains a simple tool for single random integers, but RANDARRAY truly revolutionizes random number generation in Excel. By understanding RANDARRAY‘s arguments, especially the integer argument, you can streamline many tasks that previously required repetitive RANDBETWEEN formulas. Furthermore, combining these functions (or feeding RANDBETWEEN‘s output into RANDARRAY‘s parameters) with other dynamic array functions like UNIQUE, SORTBY, INDEX, CHOOSEROWS, and TAKE allows you to create incredibly powerful and flexible solutions for simulations, data analysis, and fun randomizations.

Experiment with these tips in your own spreadsheets and unlock the dynamic randomness that Excel offers! Happy Excelling! 🚀 G

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다