プロが教えるわが家の防犯対策術!

エクセルの行からランダムに1つだけ抽出する関数を教えてください。

やりたいこと

B2~J2 この中から「L2」に1つ抽出
B3~J3 この中から「L3」に1つ抽出
B4~J4 この中から「L4」に1つ抽出
B5~J5 この中から「L5」に1つ抽出

B2~J5には空のデータも含まれます。

各行でランダムに1つだけ抽出したいですが、空白のデータは除きたいです。

この場合の「L2~L5」にはどんな関数を入れればいいのでしょうか?

=INDEX(B5:BJ5,RANDBETWEEN(1,10))

このように関数を入れたのですが、空白セルがあると「0」が表示されることもあります。

これを防ぐにはどうすればいいか教えてください。

よろしくお願いします。

質問者からの補足コメント

  • すいません。

    あと・・・

    AGGREGATE(15,6,COLUMN

    とあるのですが、15,6,というのは何を指しているのでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/01/02 22:42
  • fujillin様

    =IFERROR(INDEX(2:2,AGGREGATE(15,6,COLUMN(AA2:AJ2)/(AA2:AJ2<>""),RANDBETWEEN(1,COUNTA(AA2:AJ2)))),"")

    このように書いてみたらできました。

    今回も色々教えていただきありがとうござました。

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/01/03 10:36

A 回答 (2件)

こんにちは



>これを防ぐにはどうすればいいか教えてください。
値のあるセルを抽出して、その中からランダムに選択すれば宜しいのでは?
FILTER関数が使える環境であれば、抽出も簡単にできるはずと思いますが、私の環境では利用できませんので・・・

L2セルに
=INDEX(2:2,AGGREGATE(15,6,COLUMN(B2:J2)/(B2:J2<>""),RANDBETWEEN(1,COUNTA(B2:J2))))
とか。

すべてが空白セルの場合は、上式はエラーになります。
そのような可能性もある場合は、IFERROR等を加えて処理をしてください。
この回答への補足あり
    • good
    • 0
この回答へのお礼

fujillin様

毎回、回答ありがとうございます。

試してみて上手くできました。

しかし、すべてが空白セルの場合のエラーとなります。

IFERRORの使い方はどうすればいいのでしょうか?

=IFERROR(INDEX(2:2,AGGREGATE(15,6,COLUMN(B2:J2)/(B2:J2<>""),RANDBETWEEN(1,COUNTA(B2:J2)))))

これで試したのですが失敗でした。

よろしければ、IFERRORの使い方も教えていただけないでしょうか?

お礼日時:2021/01/02 22:18

No1です



>IFERRORの使い方はどうすればいいのでしょうか?
使い方よりも、エラーの場合にどうなさりたいのかを書いていないので、どうしたいのかがわかりません。

まぁ、これを機会に「使い方」を覚えてはいかがでしょうか?
https://support.microsoft.com/ja-jp/office/iferr …

他の方法としては、普通に、IF文で事前に「全部空白かどうかをチェックしておく」ことでもエラー表示を回避することができます。
この回答への補足あり
    • good
    • 0
この回答へのお礼

fujillin様
回答ありがとうございます。


>これを機会に「使い方」を覚えてはいかがでしょうか?
少しずつ覚えていこうと思います。


教えてもらった
=INDEX(2:2,AGGREGATE(15,6,COLUMN(B2:J2)/(B2:J2<>""),RANDBETWEEN(1,COUNTA(B2:J2))))

この関数ですが、すべて空白セルの場合は非表示にしたいです。


それと補足にも書いたのですが・・・

AGGREGATE(15,6

この15,6は何を指しているのかよく分かりません。

実は、他のセルでも置き換えて使いたいと思っています。

ちなみに・・・

AA4~AJ4 この中から「AL4」に1つ抽出する予定なのですが、「AGGREGATE(15,6」の意味が分からず他のセルでも置き換えることができませんでした。

色々ごちゃごちゃ書いて本当にすいませんが教えて頂けないでしょうか?

よろしくお願いします。

お礼日時:2021/01/02 23:33

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