dポイントプレゼントキャンペーン実施中!

休み以外の人たちからランダムに1名抽選し、名前をお掃除列に表示したいです。
なお、
 ・休のほかには現場、営業、事務室など何種かある
 ・休は1人、2人、3人、全員の場合がある
 

=IF(AND(COUNTIF($O4,"*事*"),COUNTIF($P4,"*事*"),COUNTIF($Q4,"*事*"),COUNTIF($R4,"*事*")),INDEX($O$2:$R$2,RANDBETWEEN(1,4)),"")&IF(AND(COUNTI.......

とつくってみたものの、ときたまエラーが起きるのでなにか他の方法を模索しております。


画像添付します。出張欄は無視してください。

よろしくおねがいします。

「Excel 掃除当番をランダムに1名抽選」の質問画像

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

  • 指摘ありましたので補足です。
    当番は完全ランダムで同じ人が続いても問題有りません。
    rand関数で結構だと思います

      補足日時:2020/12/02 23:37
  • うれしい

    それでも使い勝手は問題ないです。同じ人が続いても問題有りません。
    rand 関数調べて使ってみますね!

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/12/02 23:40

A 回答 (5件)

No2です。



>それでも使い勝手は問題ないです。同じ人が続いても問題有りません。
とのことですので・・・

以下の仮定をしても良いものとして、
 ・「休」の入力は一文字のみで、「休み」や「休暇」などは存在しない。
 ・「休」以外の文字(空欄も含む)の人を対象としてランダムに一人選出する
 ・全員が「休」の場合は結果がでません(空白とします)

U4セルに
=IFERROR(INDEX($2:$2,AGGREGATE(15,6,COLUMN(O4:R4)/(O4:R4<>"休"),RANDBETWEEN(1,COUNTIF(O4:R4,"<>休")))),"")
の式を入れて、下方にフィルコピーでいかがでしょうか?
    • good
    • 0
この回答へのお礼

この式で問題なく解決しました。どうしてこうなるかの理解は追いついていませんが・・・。もうひと手間あるのでこれを応用して完成とします。

見たことのない関数もあったのでまた勉強します。
ありがとうございました!!

お礼日時:2020/12/03 09:09

其れなら、



人名リストが シート2!B1:B10000
に あるとして、

=OFFSET('シート2'!$A$1,RANDBETWEEN(1,10000)-1,1,1,1)

此で 如何ですか?
未確認ですがね。
    • good
    • 0

全く 違う、


式に なりますが、
作業セルを 使用して、
いいなら、
完璧に 出来ますよ。


しかも、

熟せるのは 私だけかも、
知れませんね。


如何ですか、

多少 条件付きですが、
求めますか?
    • good
    • 0

こんにちは



rand関数等を使用して算出は可能だと思いますが、シート内で計算が発生する毎に(どこか関係の無いセルの値を入力するとか、ブックを閉じたり開いたりすると)内容が変わってしまします。
それでも、使い勝手上は問題ないのでしょうか?

>ランダムに1名抽選し
だと、同じ人が連続したりしますけれど、それも問題ないのでしょうかねぇ…
この回答への補足あり
    • good
    • 1

当番可能な人を選び出しましょう(マークを付与するなど)。


そこに連番を振ります。
その連番の最大値を条件にして乱数を発生させればよいです。
    • good
    • 1
この回答へのお礼

乱数で選ぶのが一番簡単な方法ですが、今回はドンピシャのアンサーを頂いたのでそちらを採用しました。

回答ありがとうございました!

お礼日時:2020/12/03 15:44

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

このQ&Aを見た人はこんなQ&Aも見ています