我使用PHPExcel将一些数据导出到Excel。
我最初按照我想要的方式对PHP中的字母数字字符列表进行排序(见左下方)。
但是当导出到Excel时,我们的客户希望使用Excel的排序来对数据进行排序,从而导致右下方的排序(按字母顺序排列,A-Z)
我们有什么方法可以解决这个问题吗?也许使用公式在单元格中显示一个值,但为单元格赋予不同的值(用于排序)?
或自定义单元格格式?
作为最后的手段,我计划在开头引入一个ID列,以便总是通过对ID列进行排序来返回初始排序,但如果可能的话,我宁愿不使用此解决方案。
Initial Sort Excel Sort
2586 2586
2587 2587
2587-1 2590
2587-2 2592
2590 2595
2590-1 2587-1
2590-2 2587-2
2590-3 2590-1
2590-4 2590-10
2590-5 2590-11
2590-6 2590-2
2590-7 2590-3
2590-8 2590-4
2590-9 2590-5
2590-10 2590-6
2590-11 2590-7
2592 2590-8
2595 2590-9
答案 0 :(得分:0)
如果在每行前面放置一个撇号,则按如下方式排序:
2586
2587
2587-1
2587-2
2590
2590-1
2590-10
2590-11
2590-2
2590-3
2590-4
2590-5
2590-6
2590-7
2590-8
2590-9
2592
2595
这是你想要的,对吧?
答案 1 :(得分:0)
Excel将根据自己的规则进行排序,格式化不会改变事物。您可以在不同于ID列的列上进行排序;这些列可以隐藏,按钮触发排序;或者其他一些方法可以让最终用户轻松使用。
以下是一种做事方式的示例:
您可以设置两个辅助列,将ID的左侧和右侧部分表示为数字。
使用B列中的ID:
C2: =--(LEFT(B2,FIND("-",B2&"-")-1))
D2: =IFERROR(--MID(B2,FIND("-",B2)+1,99),0)
并填写。
由于Excel排序空白的方式,您需要在第二部分的字段中放置零,这可能是空白
然后选择表,并在C列上排序,然后在D列上排序。
完成后,删除或隐藏列C:D