0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Excel のワークシート関数だけでビンゴカードを作る方法

Last updated at Posted at 2023-07-09

ビンゴカードの仕様

ビンゴ - Wikipedia の記事 を参考にするとビンゴカードは以下の仕様を満たす必要があります。

  • 5x5マスのカード
  • 現れる数字の範囲は1~75
  • 列によって番号の範囲が設定されている
列番号 第1列 第2列 第3列 第4列 第5列
番号の範囲 1-15 16-30 31-45 46-60 61-75

ワークシートの数式

方針としては、15個のランダムに並べられた数列を5列用意して、そこから5行切り出すことで1枚のビンゴカードを作成します。

重複のない乱数列を作る方法の定番としては、RANDを並べたセル範囲に対してRANKを使って各セルの順位を計算する方法があります。
しかし今回はCHOOSECOLSを使って、取り出した配列に対して、順位を計算させたいため、セル範囲を引数にとるRANKは使えません。
代わりにSUMと不等号計算を用いて順位を求める方法を使います。

[A1]5行15列の乱数マトリクス
=MAKEARRAY(15, 5, LAMBDA(r, c, RAND()))
[G1]列ごとにランク付けして、列ごとにオフセットを加算する
=LET(
    nrow, ROWS(A1#),
    ncol, COLUMNS(A1#),
    MAKEARRAY(
        nrow,
        ncol,
        LAMBDA(row_i, col_i,
            LET(
                ary, CHOOSECOLS(
                    A1#,
                    col_i
                ),
                x, OFFSET(
                    A1,
                    row_i - 1,
                    col_i - 1
                ),
                SUM((ary > x) * 1) + 1
            )
        )
    ) + {0, 15, 30, 45, 60}
)
[M1]5行5列を切り抜いて、真ん中をFREEスポットにする
=MAKEARRAY(
    5,
    5,
    LAMBDA(r, c,
        IF(
            r & c = "33",
            "FREE",
            OFFSET(G1, r - 1, c - 1)
        )
    )
)

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?