第一次发布在这里,希望我能提供足够的信息来获得一些帮助。
我在excel中有一个数据集,其中包含第1列中的多个客户端,我想根据块数为10的比例对其进行排序。例如,如果客户端1和2之间的比率为60/40,则需要订购6行客户端1,4行客户端2,6行客户端1,4行客户端2直到数据结束。
我有什么方法可以做到这一点,无论是通过excel排序还是使用VBA,我已经尝试了几天而且很难过。
感谢。
答案 0 :(得分:0)
希望这会有所帮助。这会将您的块放在彼此相邻的列中。我没有对此进行测试,但希望这个想法可以让你到达某个地方。
Sub ClientRatios()
'DataSet is in range A:A
'Make the ratios of the Clients Add up to 10
'You can have a maximum of 10 clients
Dim Nextempty As Range
Dim j As Long
Dim i As Long
'Repeat the following idea for each client and you should get what you're looking for
'+++Client1+++
'=================================
i = Range("Clinet1_Ratio")
ClientName = Range("Clinet1_Name")
'=================================
Total = Application.WorksheetFunction.CountIf(Range("A:A"), ClientName)
Do While Total < 0
j = i
c = 2
Do While j > 0
If j > Total Then j = Total
Nextempty = Cells(Cells.Rows.Count, Columns(c)).End(xlUp).Row + 1
Nextempty = ClientName
j = j - 1
Loop
c = c + 1
Total = Total - i
Loop
'+++Client2+++
'Do the same for all 10 clients
End Sub
答案 1 :(得分:0)