在excel里出现一列数据,如何把偶数跟奇数分开?

如题所述

Sub test()
    n = 1: m = 1
    maxrow = Cells(Rows.Count, 1).End(xlUp).Row
    For x = 1 To maxrow
        a = Cells(x, 1) Mod 2
        If a = 1 Then
            Cells(n, 2) = Cells(x, 1)
            n = n + 1
        ElseIf a = 0 Then
            Cells(m, 3) = Cells(x, 1)
            m = m + 1
        End If
                 
    Next
End Sub

追问

好复杂啊

追答

用公式也行,mod函数,=if(mod(a1,2)=1,a1,"") 提取奇数的,改为mod(a1,2)=0 提取偶数的。

追问

那列数据用的是文本格式的,我试过这个方法,根本就没用

追答

你既然知道是格式不对,改为常规格式不就行了?实在不行用分列,选择为常规。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-20
假设数据在A列

B1单元格写入公式(得出奇数)
=IF(MOD(A1,2),A1,"")

=IF(ISODD(A1),A1,"")

C1单元格写入公式(得出偶数)
=IF(MOD(A1,2),"",A1)

=IF(ISEVEN(A1),A1,"")

选中B1:C1,下拉填充
第2个回答  2013-05-20
你想做到什么样的结果,用公式可以做到

这么久了还没有追问,那就给你个函数MOD,你自已学习一下吧追问

那列数据用了文本格式,公式跟文本格式好像有冲突

追答

是谁说文本数据不能用公式,只有说文本格式单元格不能用公式,改为常规格式就能用了

 

比如你的文本数值写在A列

 

B1单元格写入公式(得出奇数)

=IF(MOD(A1,2),A1,"")

 

C1单元格写入公式(得出偶数)

=IF(MOD(A1,2),"",A1)

 

下拉复制B1,C1公式

 

如图A列中A1至A20就是文本格式的数字,A21之后的单元格是常规数值

B,C列公式下位使用全部正常

 

本回答被提问者和网友采纳
相似回答