アプリ版:「スタンプのみでお礼する」機能のリリースについて

Visual Basic の知識が無いので、エクセル関数に限定して教えて欲しいのですが、
(例)
(1)ロト6の予想システムを表計算でしたい。使用数字は、1~43
(2)セルB1~C43までの表がある
(3)B1~B43には1~43の数字
(4)C1~C43には、独自の予想法により、関数で絞り込んだ数字の隣に◎、候補以外は空白
(5)◎がついた候補数字のみを、ランダムで6個抽出する関数を設定したい

フィルタ機能を使って、データ抽出する「マクロボタン」の登録とかでもやってみたのですが、
最後のランダムで抽出する段階で、わからず手詰まりになってしまいます。

良い方法がありましたら、是非教えて下さい。お願いします。

A 回答 (2件)

E列には次の式を入力して下方にオートフィルドラッグコピーします。



=IF(B1="","",RAND())

F列にはE列に表示されるデータのうちで何番目に大きい数値(ランク)を選択するかを自分で決めてその数字をF1セルから下方に入力します。例えば1,5,10,15,20・・・のように入力します。これで一次の選考基準を決定します。二次の選考はF1セルからF6セルに入力したランクで行うことにします。
F列にデータを自分で入力した後でC1セルには次の式を入力して下方にオートフィルドラッグコピーします。

=IF(COUNTIF(F$1:F$43,RANK(E1,E$1:E$43))=0,"","◎")

D1セルには次の式を入力して下方にオートフィルドラッグコピーします。

=IF(OR(C1="",C1<>"◎"),"",IF(COUNTIF(F$1:F$6,RANK(E1,E$1:E$43)),"◎",""))

D列にはC列で選ばれたうちの6つのセルに表示されることになります。
    • good
    • 1

簡単な方法:


A1に
=IF(C1="◎",RAND(),"")
と記入してA43までコピー貼り付ける


E1からE6に1,2,3,4,5,6を記入する
F1に
=VLOOKUP(SMALL(A:A,E1),A:B,2,FALSE)
と記入し,F6までコピー貼り付ける。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!