- ベストアンサー
エクセルのマクロで指定した条件を満足する組み合わせを表示する方法
- エクセルのマクロを使用して、指定した条件を満足する組み合わせを表示する方法について教えてください。
- エクセルのマクロを活用して、任意の条件を満たす組み合わせを見つける方法について教えてください。
- エクセルのマクロを使って、指定した条件を満たす組み合わせを表示する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
A B C D 1 イ ロ ハ 2 A-a 3 6 0 3 A-b 0 5 1 4 A-c 2 0 5 5 6 イ ロ ハ 7 B-a 3 0 0 8 B-b 5 3 1 9 B-c 0 2 0 10 11 イ ロ ハ 12 C-a 0 5 0 13 C-b 0 4 5 14 C-c 0 0 2 と言うデータだったとします。 結果はH~K列に書き出します。 Sub test() Dim i As Integer Dim j As Integer Dim k As Integer Dim m As Integer Dim a, b, c, x ReDim x(1 To 4, 1 To 4): m = 4 a = Range("A2:D4").Value b = Range("A7:D9").Value c = Range("A12:D14").Value For i = 1 To UBound(a, 1) For j = 1 To UBound(b, 1) For k = 1 To UBound(c, 1) If (a(i, 2) + b(j, 2) + c(k, 2)) >= 5 And _ (a(i, 3) + b(j, 3) + c(k, 3)) >= 10 And _ (a(i, 4) + b(j, 4) + c(k, 4)) >= 5 Then x(1, m - 3) = a(i, 1): x(2, m - 3) = a(i, 2): x(3, m - 3) = a(i, 3): x(4, m - 3) = a(i, 4) x(1, m - 2) = b(j, 1): x(2, m - 2) = b(j, 2): x(3, m - 2) = b(j, 3): x(4, m - 2) = b(j, 4) x(1, m - 1) = c(k, 1): x(2, m - 1) = c(k, 2): x(3, m - 1) = c(k, 3): x(4, m - 1) = c(k, 4) x(2, m) = a(i, 2) + b(j, 2) + c(k, 2) x(3, m) = a(i, 3) + b(j, 3) + c(k, 3) x(4, m) = a(i, 4) + b(j, 4) + c(k, 4) m = m + 5 ReDim Preserve x(1 To 4, 1 To m) End If Next Next Next Range("I1:k1").Value = Array("イ", "ロ", "ハ") Range("H2").Resize(m - 5, 4).Value = Application.Transpose(x) End Sub ご参考まで。
その他の回答 (2)
- n-jun
- ベストアンサー率33% (959/2873)
ANo.1です。 グループと書かれてますが、それがシート上にどのようになっているのかが不明です。 (同じシートにあるのか、別のシートにあるのか、どこのセルにどのようにあるのか)
- n-jun
- ベストアンサー率33% (959/2873)
グループA・B・Cにおいて、条件を満たすまでループさせるしかないのでは?
お礼
ご回答ありがとう御座います。 グループが無くて(サンプルのみ)で属性が一つだけだと出来るのですが、 ・各グループから一つだけ ・複数の条件を満たす結果を返す と、云う様な方法が解らなくて・・・。 ありがとう御座いました。
お礼
おお!ありがとう御座います。 グループは別シートでした・・・、でも、後は自分でやってみます 本当にありがとうです。感謝感謝