• ベストアンサー

Excel ランダムに1立て

指定した範囲にランダムに1立てをしたいです。 A1:E5と指定したら   A B C D E 1   1 2 1 3      1 4 1 5        1 としたいです。横行には1は1つしか立てません。 こういうことはマクロできますでしょうか。 やり方を教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 マクロでやりたいという事であれば、一例としては以下の様なマクロとなります。 Sub QNo9049064_Excel_ランダムに1立て() Dim c As Range Randomize With Range("A1:E5") .ClearContents For Each c In .Resize(, 1) c.Offset(0, Int(Rnd * .Columns.Count)).Value = 1 Next c End With End Sub

meronsodanomu
質問者

お礼

ありがとうございます。

その他の回答 (2)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

マクロの必要はないでしょう。 A列は次の数式で良いと思います。 A1=IF(RANDBETWEEN(0,1),1,"") B列は次の数式が使えます。 B1=IF(SUM($A1:A1)=0,IF(RANDBETWEEN(0,1),1,""),"") C列から右側はB列をオートフィルコピーで良いでしょう。 但し、右列は順次出現確率が低下します。

meronsodanomu
質問者

お礼

ありがとうございます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

A1=ROUND(RAND(),0) B1=IF(SUM($A1:A1)>=1,0,ROUND(RAND(),0))

meronsodanomu
質問者

お礼

ありがとうございます。

関連するQ&A