【问题标题】:Excel sort complex table by columnExcel按列对复杂表进行排序
【发布时间】:2017-08-05 09:33:04
【问题描述】:

我是 Excel 新手,似乎有基本问题,但我在互联网上找不到任何解决方案。

我有 Excel 表格,它有 4 列:人员、年龄、地址、价格,如下所示

+==================================+
| Person | Age | Addresses | Price |
+==================================+
|   P1   | 30  | St.1 N1   | 1000  |
|----------------------------------|
|        |     | St.3 N1   | 4000  |
|        |     |-----------|-------|
|   P4   | 50  | St.3 N3   | 5000  |
|        |     |-----------|-------|
|        |     | St.3 N2   | 6000  |
|----------------------------------|
|        |     | St.3 N1   | 4000  |
|   P2   | 50  |-----------|-------|
|        |     | St.3 N3   | 5000  |
|----------------------------------|
|        |     | St.2 N1   | 2000  |
|   P3   | 50  |-----------|-------|
|        |     | St.2 N2   | 3000  |
|..................................|
+==================================+

在这里,每个人都有多个居住地址并为他们定价。对我来说困难的是我不知道如何按列 Person(文本)或 Age(整数)排序​​。例如,如果我想按年龄升序排序,结果应该如下所示。

+==================================+
| Person | Age | Addresses | Price |
+==================================+
|   P1   | 30  | St.1 N1   | 1000  |
|----------------------------------|
|        |     | St.2 N1   | 2000  |
|   P3   | 40  |-----------|-------|
|        |     | St.2 N2   | 3000  |
|----------------------------------|
|        |     | St.3 N1   | 4000  |
|        |     |-----------|-------|
|   P4   | 50  | St.3 N3   | 5000  |
|        |     |-----------|-------|
|        |     | St.3 N2   | 6000  |
|----------------------------------|
|        |     | St.3 N1   | 4000  |
|   P2   | 50  |-----------|-------|
|        |     | St.3 N3   | 5000  |
|..................................|
+==================================+

如您所见,其他列的排序方式并不重要。我唯一想要的是使用年龄列(或人员)中的排序单元格移动地址和价格。现在 Person 和 Age 是合并的单元格。有可能被改变。任何想法都会有所帮助。我也在使用 Excel 2016。

附:当所有列的行大小相等时,我知道如何排序。我也知道如何过滤它们。我还看到有高级排序,您可以按优先级按多列排序,但它似乎没有解决我的问题(至少我没有看到解决方案)。

附:另外,如果可能的话,我想要一个按钮,例如当我单击数据选项卡 -> 排序和过滤器 -> 过滤器按钮时出现的按钮,然后从标题人、年龄、地址、价格有按钮进行排序和过滤。

【问题讨论】:

  • 您有几个问题和几个解决方案。你能消除合并的单元格吗?如果是,您可以使用公式导出排序列。如果不是,我认为 VBA 是您唯一的选择。按钮仅适用于 VBA。这里没有人会免费写。如果你表现出努力并且失败了,你会继续帮助它发挥作用。
  • 感谢您给我的指导。我会尝试。我也是这个网站的新手。我应该创建新页面还是编辑这个页面。在此先感谢:)
  • 您可以根据需要编辑此问题或创建新问题。
  • 我不想过多地谈论合并的单元格,但它们是一种演示工具(用于演示、打印输出、分发的最终报告,可能是仪表板标题),并且永远不应该包含在数据表。任何您将在其中操作和处理数据的 Excel 工作表都不应该有合并单元格恕我直言

标签: excel sorting


【解决方案1】:

既然你说可以改变你的数据,那就把它写成这样的格式:

+==================================+
| Person | Age | Addresses | Price |
+==================================+
|   P1   | 30  | St.1 N1   | 1000  |
|----------------------------------|
|   P4   | 50  | St.3 N1   | 4000  |
|--------------|-----------|-------|
|   P4   | 50  | St.3 N3   | 5000  |
|----------------------------------|
|   P4   | 50  | St.3 N2   | 6000  |
|----------------------------------|
|   P2   | 50  | St.3 N1   | 4000  |
|----------------------------------|
|   P2   | 50  | St.3 N3   | 5000  |
|----------------------------------|
|   P3   | 50  | St.2 N1   | 2000  |
|----------------------------------|
|   P3   | 50  | St.2 N2   | 3000  |
|..................................|
+==================================+

您可以在normalization 上做一些基本的阅读。你原来的表被认为是unnormalized,而这个重构版本是first normal form

要按年龄排序,请先按年龄排序,然后按人排序。这将使分组保持在一起。

要获得带有排序和过滤按钮的表格,请选择您的数据,然后选择“插入”>“表格”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2011-03-13
    • 2016-09-27
    • 1970-01-01
    • 2015-11-14
    • 2020-09-29
    • 1970-01-01
    相关资源
    最近更新 更多