いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)ダイスロールのシミュレート

 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))