在我们的仓库中,我们有偶数/奇数个位置系统。
这是示例:
1-101-1
1-103-1
1-105-1
....
1-285-1
和
2-102-1
2-104-1
2-116-1
2-240-1
....
2-286-1
也有水平
1-101-2
1-101-3
1-101-4
有很多数据,我需要这样的排序:
示例数字:
1-101-1
2-130-1
1-131-1
1-150-2
2-132-3
3-229-5
4-262-1
4-286-5
7-267-1
5-239-1
6-270-1
7-267-3
我需要这样的排序:
1-101-1
2-130-1
1-131-1
2-132-3
4-286-5
4-262-1
3-229-5
5-239-1
6-270-1
7-267-1
7-267-1
点是前两个数字( 1 -101-1; 2 -102-1)从最小到最大,后两个数字( 3 -285-1; 4 -286)从最大变到最小, 5-6再次从最小变到最大,并随着那个系统而结束
第二个排序是中间数字,该数字将按照从小到大的顺序排列,然后从最大到最小,最后一个数字是级别,与级别1相同,但必须按级别1进行排序,或者如果存在7-267-1和7-267-3,则接近1级
有什么解决办法吗?谢谢
编辑:
here is image for easier understanding because it is hard to explain
感谢所有答案,尤其是Daniel是Excel方面的专家并且了解我的需求。
我的意思是没有VBA不会有类似的解决方案,但是Daniel向我展示了我错了。再次感谢。
那是我所需要的,但是如果您能帮助我,那会有些错误
这是其他位置的示例:
this is unsorted locations with formulas you give me
这是经过排序的,但是顺序错误:
这里有错误:
我们有120行,数字大于99,则显示错误,第二行中的数字22-250-1在-25中出现
在此示例中,我尝试使用您输入的数字进行公式运算,我得到的排序与您相同,但是输入其他位置后,排序出现了错误。
答案 0 :(得分:0)
欢迎使用StackOverflow!
我想我知道要求什么。有点难以解释,但我会尝试一下。
主要排序如下:
3
或4
,则它应该降序排列,否则升序。3
或4
编号序列(请参见上面的#1),那么中间的对应该降序排列。我的解决方案将序列分为不同的列:
例如,创建三列:First
,Second
,Third
。
First
的公式:
=INT(LEFT(A2, 1))
Second
的公式:
=INT(RIGHT(LEFT(A2,5), 3))
Third
的公式:
=INT(RIGHT(A2,1))
接下来,我们分配用于对这三个字段进行排序的值:
创建一个标记为First_Sort_Pair
的列:
=IF(OR(B2=1,B2=2),1,
IF(B2=3,3,
IF(B2=4,2,
IF(OR(B2=5,B2=6),4,
IF(OR(B2=7,B2=8),5,6)))))
创建一个标记为First_Sort
的列:
=IF(OR(B2=3, B2=4), 2, 1)
创建一个标记为Second_Sort
的列:
=IF(E2=4, 2, IF(E2=3, 3, 1))
创建一个标记为Sort_3_4
的列:
=IF(OR(B2=3,B2=4),RANK(C2,C:C,0),)
您现在可以开始排序: [
结果: