袁隆平水稻试验中心:一个spss数据匹配问题
22 42 1965
22 42 1985
23 47 1982
23 47 1992
23 47 1942
23 47 1957
27 54 1978
27 54 1954
27 54 1931
31 47 1969
31 47 1981
31 47 1948
36 58 1968
36 58 1956
36 58 1970
62 60 1980
62 60 1975
69 33 1953
69 33 1962
69 33 1987
111 90 1966
111 90 1968
111 90 1984
111 90 1988
原数据当然不会这么简单,正因为原数据太大,所以寻求批量解决办法
问题是这样的:
以上的数据,A1相同的为一组,我们现在需要剥离出至少有一个组员使得A3>1983的组,满足这个条件,则我们不光留下这个成员的数据,同时也留下该组其他成员所有数据。而不满足条件的其他组数据则全部删除。
请问要达到以上目的有没有简便的方法?
能直接在SPSS或者EXCEl里面解决问题最好,能给出VB程序也可
谢谢!
先按A3排序,把a3<=1983的一块删了
再按A1排回来
在EXCEI里很容易实现吧
晕,倒把这给忘记了写个VB宏
Sub gowork()
Dim l, i, j, e, k, t, g, f
'For i = 1 To Sheet1.Rows.Count
' If Sheet1.Cells(i, 1) = "" Then Exit For
' l = Split(Sheet1.Cells(i, 1), " ")
' With Sheet1
' Cells(i, 1) = l(0)
' Cells(i, 2) = l(1)
' Cells(i, 3) = l(2)
' End With
'Next
Const c_rowstart = 2
t = c_rowstart
g = Sheet1.Cells(c_rowstart, 1)
f = False
For i = c_rowstart To Sheet1.Rows.Count
If CInt(Sheet1.Cells(i, 3)) > 1983 Then f = True
If Sheet1.Cells(i + 1, 1) <> g Then
If Not f Then Sheet1.Range("A" & t & ":C" & i).Clear
t = i + 1
g = Sheet1.Cells(t, 1)
f = False
End If
If Sheet1.Cells(i + 1, 1) = "" Then Exit Sub
Next
End Sub
在我这里用你给出的数据测试结果是正确的
A1 A2 A3
22 42 1965
22 42 1985
23 47 1982
23 47 1992
23 47 1942
23 47 1957
69 33 1953
69 33 1962
69 33 1987
111 90 1966
111 90 1968
111 90 1984
111 90 1988
删完了再按A1排序就好了。排序代码我就不写了。
一楼的回答并不能解决这个问题!您提到的“先按A3排序,把a3<=1983的一块删了
”会连符合条件的同组成员一块删除了。
况且原始数据也比上面要复杂的多。问题也复杂得多,不仅是A3一个条件,而是多个组合条件
这里只是想从大家的回答中得出一些规律性的启示,希望高人帮忙!