循环多个范围并根据条件进行连接

我有四个1列范围具有相同的行数:国家,名称,类别,金额。 “国家”,“名称”和“分类”范围包含string值,“金额”范围有双倍。 我面临的问题是:只要金额高于或低于某个值,我需要在每个类别和每个名称下获得所有国家的string。

样本表:

 国家名称类别金额
克罗地亚乔恩蓝14
挪威乔恩·蓝23
波兰Rob Green 10
埃及伊娃绿8
加拿大伊娃粉红色32
巴西罗布粉红色25
瑞士Rob Pink 35
俄罗斯Jon Pink 27
瑞典罗布黑色32
罗布·布莱克13
贝宁埃丝特紫罗兰24
莫罗科Jon黄色36
罗马尼亚伊娃黄色35
美国伊娃黄38
日本罗布黄34 

对于Amount> 20,每个类别的正确string结果是:

Blue: Jon: norway(23) Pink: Eva: canada(32), Rob: brazil(25), switzerland(35) Yellow: Jon: morroco(36), Eva: romania(35), usa(38), Rob: japan(34) etc. 

任何想法如何解决这个问题? 没有编写代码,因为我不知道哪里可以开始。 正在考虑multidimensional array,但这超出了我的编码能力…任何帮助非常感谢

下面的代码会让你接近你想要的。 这是输出:

 Blue: Jon: norway(23), Pink: Eva: canada(32), Pink: Rob: brazil(25), Pink: Rob: switzerland(35), Pink: Jon: russia(27), Black: Rob: sweden(32), Violet: Esther: benin(24), Yellow: Jon: morroco(36), Yellow: Eva: romania(35), Yellow: Eva: usa(38), Yellow: Rob: japan(34), 

你唯一需要做的就是在每一行的末尾压制空白的第二行,重复的颜色输出和“,”。 但我不想把你所有的乐趣都拿走 如果您遇到问题,请再次发帖。

 Option Explicit Sub test() Dim r As Range, colorR As Range, resultR As Range Dim amountR As Range, countryR As Range, nameR As Range Dim color As String, name As String, country As String, amount As String Set resultR = Range("A19") Set r = Range("C2") Set colorR = r While r <> "" While r = colorR Set amountR = r.Offset(0, 1) Set nameR = r.Offset(0, -1) Set countryR = r.Offset(0, -2) If amountR > 20 Then If color = r & ": " Or color = "" Then color = "" Else color = r & ": " If name = nameR & ": " Then name = "" Else name = nameR & ": " country = countryR & "(" amount = amountR & "), " resultR = resultR & color & name & country & amount End If Set r = r.Offset(1, 0) Wend If resultR <> "" Then resultR = Left(resultR, Len(resultR) - 2) Set resultR = resultR.Offset(1, 0) End If Set colorR = r Wend End Sub