我正在尝试对数据行进行排序,以便字母数字地址的整数值按奇数值的顺序排列,然后给出它们属于同一类型的偶数值。
我得到(半)工作的唯一方法是:
- 如果地址的整数是偶数或奇数,则查找 - 将EVEN或ODD添加到该地址对应行的单元格中 - 跑宏 - 通过EVEN或ODD指定过滤数据
这种方法并不理想。我有兴趣重新排列行而不必使用过滤。
以下是排序方式的示例。
$args
我是VBA的新手。提前感谢您的任何建议。
答案 0 :(得分:0)
我认为您需要创建一个帮助列,您可以在其中存储可用于排序的值。
基本思路是从“地址”列中提取数值,检查它是否为偶数,如果是,则将其乘以高值(例如1000),以保证它高于最高可能的奇数值
您可以为此单元格使用公式 - 但对我来说这看起来有点复杂。假设您的数据在单元格A2中开始:
=VALUE(LEFT(A2, SEARCH("p", A2, 1)-1))*IF(ISODD(VALUE(LEFT(A2, SEARCH("p", A2, 1)-1))),1,1000)
或写一个小的 UDF
Function SortVal(s As String) As Double
SortVal = Val(s)
If Int(SortVal) Mod 2 = 0 Then SortVal = SortVal * 1000
End Function
并在帮助栏
中调用它=SortVal(A2)