我试图在excel中生成他们有关系的组合id_users。所以我使用这个示例代码给了我这个结果:
输入是数据透视表:
' id_row id_users
10 1
2
3
66 4
11
这是我的输出
'source target label
1 2 10
1 3 10
2 3 10
4 11 66
但它给了我这个结果:
'source target label
1 2 10
1 3 10
2 1 10
2 3 10
3 1 10
3 2 10
4 11 66
11 4 66
如你所见,我也不想显示交换的行,如果它显示重复的行,那就没关系..但我不想显示交换的数据。如:1 2和2 1 它并不代表任何重复的信息,例如:a与b有关系,然后你看到b与a有关系..而且它只是重复的信息,我首先拥有它... 在我的代码中,它显示数据数组sq user_1与sqq user_2中的数据不相等,但我还要显示未在以前调用的数据 sq user_1:
'
'get the combinationsin the pivot table for this topic
sq = Range(rTopic, rTopic.End(xlDown).Offset(-1)).Offset(, 1).Resize(, 2).SpecialCells(2, 1).Value
'get the unique combinations of persons
sUniq = " "
For lUser_2 = 1 To UBound(sq, 1)
If InStr(sUniq, " " & sq(lUser_2, 2) & " ") = 0 Then
sUniq = sUniq & sq(lUser_2, 2) & " "
End If
Next
sqq = Split(Trim(sUniq))
'loop over user id's and generate combinations
For lUser_1 = 1 To UBound(sq, 1)
For lUser_2 = 0 To UBound(sqq)
If sq(lUser_1, 2) & "" <> sqq(lUser_2) Then
'we found a new combination, output to screen
Range(sStartingCellOutput).Offset(lRowOffset, lColOffset).Resize(1, 3).Value = Array(sq(lUser_1, 2), sqq(lUser_2), rTopic.Value)
'increment the counter
lRowOffset = lRowOffset + 1
If lRowOffset >= Rows.count Then
lRowOffset = 0
lColOffset = lColOffset + 4
End If
End If
Next
Next
我编辑它以在我的代码中解释更多..我是否需要一个小帮助?如果我的Q不清楚只是评论我...谢谢
答案 0 :(得分:0)
您需要为正在检查的值添加另一个空格
If InStr(sUniq, " " & sq(lUser_2, 2) & " ") = 0 Then