Excelで、「3d6」(6面ダイスを3個振る)といった文字列が与えられたときにその結果を出力する例です。
- RANDARRAY関数やTEXTBEFORE/TEXTAFTER関数を使ってダイスの結果を出力することができます。
手順
画像ではB列にダイスの面数と個数を表す文字列が入力されています。
これに対しD3セルに式を入力し、下方にコピーすることでそれぞれの結果を出力しています。
D3セル
=RANDARRAY(1,TEXTBEFORE(B3,"d"),1,TEXTAFTER(B3,"d"),TRUE)
基本的にRANDARRAY関数を使いますがダイスの個数と面数(「d」の前後の値)を取得するためにTEXTBEFORE/TEXTBEFORE関数を併用しています。
FIND関数等を駆使すれば多少古いバージョンのExcelでも同じことができるもののなかなか面倒で、こちらの方がだいぶ簡単になります。
また、合計だけが欲しい場合は上記の式をSUM関数で囲めばOKです。
D3セル
=SUM(RANDARRAY(1,TEXTBEFORE(B3,"d"),1,TEXTAFTER(B3,"d"),TRUE))