[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『数値の均等配置』(アキ)
1が1回、2が3回、3が2回という風に1から40までの数値で回数の違う数値を合計120個の中に均等配置する方法を教えてください
< 使用 Excel:Excel2010、使用 OS:Windows7 >
この場合の均等配置とはどういう配置を指すのか? (ねむねむ) 2018/05/07(月) 13:17
'Sheet1のA列に数値、B列に回数、結果はSheet2のA列に表示される Dim c As Range Sheets("Sheet2").Cells.Clear For Each c In Sheets("Sheet1").Range("A:A").SpecialCells(2) Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(c.Offset(, 1).Value) = c.Value Next c For Each c In Sheets("Sheet2").Range("A:A").SpecialCells(2) c.Offset(, 1).Value = WorksheetFunction.CountIf(Sheets("Sheet2").Range("A1:A" & c.Row), c.Value) / WorksheetFunction.CountIf(Sheets("Sheet2").Range("A:A"), c.Value) Next c With Sheets("Sheet2").Sort .SortFields.Clear .SortFields.Add Key:=Range("B2:B" & Rows.Count), Order:=xlAscending .SetRange Range("A2:B" & Rows.Count) .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Sheets("Sheet2").Columns(2).Clear End Sub (mm) 2018/05/07(月) 14:08
(アキ) 2018/05/08(火) 10:48
そうじゃなくて、1〜40までの数字がそれぞれ何個かある合計120個のグループから、120枠に重複なしでランダムに抽出配置したいってことだとおもうんですが、違ってますでしょうか。
推測があってる場合、
http://office-qa.com/Excel/ex205.htm
↑の方法で1〜120の乱数を作ることができるとおもうので、これを応用して、適当な列(または行)に「1,2,2,2,3,3,・・・」とリストを作っておいてからINDEX関数などで一つずつ参照させてみてはどうでしょうか
【例】
A1〜A120にリストを入力したとして
B1〜B120に「=RAND()」
C1に「=RANK(B1,$B$1:$B$120,0)」と入力して、120行目までフィル
上記の準備したうえで、
E1に「=INDEX($A$1:$A$120,MATCH(ROW(),$C$1:$C$120,0),1)」と入力して120行目までフィル
(もこな2) 2018/05/08(火) 15:40
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.