残業を減らす!Officeテクニック

今年の運勢はAIとエクセルで決まる? CopilotとExcelでおみくじを作ってみよう

Copilotで生成した運勢をランダムに抽出

 初詣に行くと「おみくじ」を引く人も多いのではないでしょうか? 年初のイベントとしても定番ですよね。他の占いとは異なる“おみくじ”ならではの独特な言い回しも楽しいものです。今回は、CopilotとExcelを使って、簡単なおみくじを作ってみましょう。

RANDBETWEEN関数でランダムな数値を生成。INDEX関数でおみくじの結果を表示させる

 おみくじの結果はCopilotに依頼します。ランダムな数値をRANDBETWEEN関数で発生させて、その行に対応する内容をINDEX関数で抽出します。指定した範囲内で整数の乱数を発生させる処理と、行番号と列番号が示す位置の値を取り出す処理は、どちらも実務で役立つテクニックです。

Copilotでおみくじの結果を生成

 おみくじの結果は、Copilotに生成してもらいます。ここでは、大吉・中吉・小吉・吉・末吉・凶の6種類として、大吉と凶は3行、それ以外は5行ずつ出力してもらいます。入力したプロンプトは以下の通りです。

以下の内容をExcelに貼り付けられる表形式で生成してください。

#重要
要約禁止
Excelにそのまま貼れる形式とする
単調にならないように1行ずつ言い回しを調整する
運勢ごとに出力
続きの出力にはヘッダーを含めない

#条件
おみくじの運勢は、大吉・中吉・小吉・吉・末吉・凶の6種類
A~O列の15列構成
1行目にヘッダー
2行目以降にデータ
全出力は、3 + 5 + 5 + 5 + 5 + 3 = 26行

#列構成
A列:運勢
B列:全体的な運勢
C列:願事
D列:待人
E列:失物
F列:旅行
G列:商売
H列:学問
I列:相場
J列:競争
K列:恋愛
L列:転居
M列:出産
N列:病気
O列:縁談

#文体
伝統的なおみくじ風の文体
繰り返し(コピー&ペースト)禁止

大吉:明るく希望に満ちる表現
中吉:良好で安定感のある表現
小吉:慎重かつ柔らかい表現
吉:落ち着いた表現
末吉:控えめな表現
凶:慎重で柔らかい表現

#生成順序
大吉(3行)
中吉(5行)
小吉(5行)
吉(5行)
末吉(5行)
凶(3行)
上記のプロンプトをCopilotに送信した結果。[コピー]をクリックする

 回答の下部に表示される[コピー]をクリックしても構いませんが、不要なテキストまで含めてコピーされてしまいます。黒い囲みにある[コピー]をクリックしたほうが、貼り付け後にテキストを整形する手間が省けます。

データを各セルに分割する

 Copilotの回答をExcelに貼り付ける際、A列だけにデータが貼り付けられてしまうことがあります。[区切り位置指定ウィザード]で分割しましょう。分割して貼り付けられた場合は、この操作は必要ありませんが、貼り付けたデータの下部に不要な情報が含まれている場合は削除しておきましょう。

Copilotの回答を貼り付けた結果、A列だけに貼り付けられてしまった状態。[データ]タブの[区切り位置]をクリックする
[タブ]のチェックをONにして、プレビューで分割できていることを確認する。Copilotの回答によっては[スペース]で分割できる場合もある。[完了]をクリックする
Copilotの回答をセルごとに分割できた

INDEX関数で特定のデータを取り出す

 各行におみくじの結果が入力された状態にできたので、後は、RANDBETWEEN関数とINDEX関数を利用して参照するだけです。数式を入力する前に見出しをコピーしておきましょう。

 RANDBETWEEN関数は、引数[最小値]と[最大値]の範囲内で乱数を発生させます。今回、発生させたい乱数はデータ部分の2行目から最終行までです。COUNTA関数を利用して最終行の行数を求めます。

=RANDBETWEEN(2, COUNTA(Sheet1!$A:$A))

見出し行を選択してコピーしておく
新しいシートを追加して、3行目を右クリックして[行/列の入れ替え]をクリックする
セルA1に「=RANDBETWEEN(2, COUNTA(Sheet1!$A:$A))」と入力する
乱数が発生する。この数値でおみくじの結果を引く

 RANDBETWEEN関数で発生させた乱数を元にして、INDEX関数でおみくじの結果を引きます。INDEX関数の構文は以下の通りです。

INDEX関数の構文。引数[配列]の[行番号]と[列番号]の位置にある値を求める

 引数[配列]は、Copilotの回答を貼り付けたセル範囲です。今回は、[Sheet1]シートのA~O列なので、[配列]は「Sheet1!$A:$O」、[行番号]は、RANDBETWEEN関数で求めた数値が入力されているセルA1、[列番号]は「ROW()-2」としています。

=INDEX(Sheet1!$A:$O, $A$1, ROW()-2)

 「ROW()-2」と指定する理由は、この数式を3行目に入力するためです。上記の手順でおみくじの結果の見出しを縦方向に貼り付けたので、例えば「運勢」は3行目に入力されています。「運勢」に対応するデータは[Sheet1]シートの1列目に入力されています。つまり「ROW()-2」は、3行目を起点として列番号を「1」から数えているわけです。

セルB3に「=INDEX(Sheet1!$A:$O, $A$1, ROW()-2)」と入力する
オートフィルでコピーすれば、おみくじの結果が表示される

 [F9]キーを押してシートを再計算すれば、おみくじの結果が切り替わります。

[F9]キーを押す
セルA1の数値が変化して、おみくじの結果が切り替わった

 お遊び感覚のおみくじですが、RANDBETWEEN関数やINDEX関数の使い方は実務にも通じる使い方です。Copilotの回答を活用する際のテクニックの1つとしても覚えておくと便利です。