- ベストアンサー
Excel ランダムに1立て
指定した範囲にランダムに1立てをしたいです。 A1:E5と指定したら A B C D E 1 1 2 1 3 1 4 1 5 1 としたいです。横行には1は1つしか立てません。 こういうことはマクロできますでしょうか。 やり方を教えてください。よろしくお願いします。
- みんなの回答 (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
その他の回答 (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列をオートフィルコピーで良いでしょう。 但し、右列は順次出現確率が低下します。
質問者
お礼
ありがとうございます。
- aokii
- ベストアンサー率23% (5210/22062)
回答No.1
A1=ROUND(RAND(),0) B1=IF(SUM($A1:A1)>=1,0,ROUND(RAND(),0))
質問者
お礼
ありがとうございます。
お礼
ありがとうございます。