- ベストアンサー
隣の列より大きい数字で組み合わせを作成する方法
- 1枠から5枠にそれぞれに入っている1~31迄の15個の数字で、左の枠の数字より大きい数字で組み合わせを作成する方法について教えてください。
- エクセル2016で、1枠から5枠までの数字を使って右側に組み合わせを並べる方法を教えてください。
- 隣の枠には同じ数字がありますが、1枠から5枠の数字を重複なく使って、左の枠の数字より大きい組み合わせを作成する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ごめんなさい。直しました。 Sub SampleA() Dim Cnt1 As Long Dim Cnt2 As Long Dim Cnt3 As Long Dim Cnt4 As Long Dim Cnt5 As Long Dim PutRow As Long PutRow = 2 With ThisWorkbook.Sheets(1) For Cnt1 = 3 To 17 For Cnt2 = 3 To 17 For Cnt3 = 3 To 17 For Cnt4 = 3 To 17 For Cnt5 = 3 To 17 If ((.Cells(Cnt1, 1).Value < .Cells(Cnt2, 2).Value) And _ (.Cells(Cnt2, 2).Value < .Cells(Cnt3, 3).Value) And _ (.Cells(Cnt3, 3).Value < .Cells(Cnt4, 4).Value) And _ (.Cells(Cnt4, 4).Value < .Cells(Cnt5, 5).Value)) Then PutRow = PutRow + 1 .Cells(PutRow, 7).Value = .Cells(Cnt1, 1).Value .Cells(PutRow, 8).Value = .Cells(Cnt2, 2).Value .Cells(PutRow, 9).Value = .Cells(Cnt3, 3).Value .Cells(PutRow, 10).Value = .Cells(Cnt4, 4).Value .Cells(PutRow, 11).Value = .Cells(Cnt5, 5).Value End If Next Cnt5 Next Cnt4 Next Cnt3 Next Cnt2 Next Cnt1 End With End Sub
その他の回答 (1)
- HohoPapa
- ベストアンサー率65% (455/693)
こんな感じでしょか。 (ちょっと手抜きです) Sub SampleA() Dim Cnt1 As Long Dim Cnt2 As Long Dim Cnt3 As Long Dim Cnt4 As Long Dim Cnt5 As Long Dim PutRow As Long PutRow = 2 With ThisWorkbook.Sheets(1) For Cnt1 = 3 To 17 For Cnt2 = 3 To 17 For Cnt3 = 3 To 17 For Cnt4 = 3 To 17 For Cnt5 = 3 To 17 If ((.Cells(Cnt1, 1).Value < .Cells(Cnt2, 2).Value) And _ (.Cells(Cnt1, 2).Value < .Cells(Cnt2, 3).Value) And _ (.Cells(Cnt1, 3).Value < .Cells(Cnt2, 4).Value) And _ (.Cells(Cnt1, 4).Value < .Cells(Cnt2, 5).Value)) Then PutRow = PutRow + 1 .Cells(PutRow, 7).Value = .Cells(Cnt1, 1).Value .Cells(PutRow, 8).Value = .Cells(Cnt2, 2).Value .Cells(PutRow, 9).Value = .Cells(Cnt3, 3).Value .Cells(PutRow, 10).Value = .Cells(Cnt4, 4).Value .Cells(PutRow, 11).Value = .Cells(Cnt5, 5).Value End If Next Cnt5 Next Cnt4 Next Cnt3 Next Cnt2 Next Cnt1 End With End Sub なお、抽出結果の並べ替えは (求める並び順が明示されていないことから) 行っていません。 また、課題サンプルデータの場合 22万行弱ありますよ。
補足
早速のご回答いただきありがとうございます。 作っていただいたソースを実行したところ、 例えば1枠にある、1や2の数字より大きい2枠の数字の3は無く 5や6以上の数字になっています。 添付した図の結果には、1枠に1があり、2枠には3となっています。 1枠>2枠>3枠>4枠>5枠 (正しくは、1枠<2枠<3枠<4枠<5枠)なので、 左側の枠の数字より右側の枠の数字が大きいことを表しますが、 右側の枠の数字の1番目としては、 左側の枠の数字+1に近い数字になります。
お礼
早速修正いただきありがとうございます。 再度、実行したところイイ感じの結果になりました。