【问题标题】:Sorting of alphanumeric values in Excel在 Excel 中对字母数字值进行排序
【发布时间】:2018-02-09 12:16:00
【问题描述】:

我使用 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

【问题讨论】:

  • 导入时,以文本形式导入。 Excel 在排序时将数字放在首位,然后确保在排序时不会选择按值排序,看起来像数字作为数字。
  • 右边好像是按字母排序的。
  • 只定义一个自动过滤范围怎么样,然后用户可以在标题行中使用工具栏对自己进行排序

标签: excel sorting phpexcel


【解决方案1】:

如果您在每行前面放置一个撇号,则排序如下:

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

这是你想要的,对吧?

【讨论】:

  • 不,我想要它,因为它最初是排序的(如左侧列表中所示)。将其添加到问题中以澄清。
【解决方案2】:

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

排序前

排序对话框

排序后

【讨论】:

    猜你喜欢
    • 2015-10-14
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多