• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:隣の列より大きい数字で組み合わせを作成する)

隣の列より大きい数字で組み合わせを作成する方法

このQ&Aのポイント
  • 1枠から5枠にそれぞれに入っている1~31迄の15個の数字で、左の枠の数字より大きい数字で組み合わせを作成する方法について教えてください。
  • エクセル2016で、1枠から5枠までの数字を使って右側に組み合わせを並べる方法を教えてください。
  • 隣の枠には同じ数字がありますが、1枠から5枠の数字を重複なく使って、左の枠の数字より大きい組み合わせを作成する方法を教えてください。

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.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

sazanami0422
質問者

お礼

早速修正いただきありがとうございます。 再度、実行したところイイ感じの結果になりました。

その他の回答 (1)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

こんな感じでしょか。 (ちょっと手抜きです) 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万行弱ありますよ。

sazanami0422
質問者

補足

早速のご回答いただきありがとうございます。 作っていただいたソースを実行したところ、 例えば1枠にある、1や2の数字より大きい2枠の数字の3は無く 5や6以上の数字になっています。 添付した図の結果には、1枠に1があり、2枠には3となっています。 1枠>2枠>3枠>4枠>5枠  (正しくは、1枠<2枠<3枠<4枠<5枠)なので、 左側の枠の数字より右側の枠の数字が大きいことを表しますが、 右側の枠の数字の1番目としては、 左側の枠の数字+1に近い数字になります。

関連するQ&A