在Excel中更改表列的顺序

那么,它现在可能还不太容易。

我想按照特定的顺序在Excel中的表格内容的列。

即我希望前缀('Product'/'product')所有列以字母顺序结束,除了“Product_ID”是其中的第一个和其他一切保持不变。

演示

Cust_ID | 名称| Product_Quantity | PRODUCT_NAME | Product_ID | Price_per_quantity

1 | Rohit | 4 | 笔| A23 | $ 2

2 | Tim | 3 | 锅| P41 | $ 3

Cust_ID | 名称| Price_per_quanity | Product_id | product_Name | Product_Quantity

1 | Rohit | $ 2 | A23 …(各栏数据)

我希望有一个使用VBA脚本(包含更多列)的n列(带/不带)的通用方法。

另外(第二个问题)不pipe有什么价值,都是由SO成员来解决的。

假设a在A1中,在顶部插入一行并填充:

 =COLUMN() 

复制在所有填充的列上。 select所有填充的列并按行1最大到最小sorting。

按着这些次序

  1. 插入一个虚拟的顶部行,值1,2,3,4
  2. 复制包括这个虚拟行在内的所有数据 – >粘贴特殊 – >转置在其他位置
  3. 使用“从最大到最小”使用“扩展”选项对转置数据进行sorting
  4. 现在再次复制数据,这次没有第一​​个虚拟列 – >粘贴特殊 – >转置。

呼…

附图。 在这里输入图像描述

select您想要sorting的单元格。 右键点击它们,selectSort – > Custom Sort

点击选项,然后selectLeft to Right 。 并设置如图所示的设置:

在这里输入图像说明

然后按确定。

这个答案是@pnuts给出的答案的附录,如果可能的话,这个答案要简单得多。 如果由于某种原因无法按列进行sorting,则获得结果的一种方法是对input进行转置(即交换行和列),按按字母顺序sorting,然后转置回原始格式。 这里是一步一步的指导如何做到这一点:

在这里输入图像描述

突出显示您希望转置数据转到的电子表格的4x3区域。 然后在上面的例子中input一个转置数组公式=TRANSPOSE($A$1:$D$3) 。 请注意,单元格范围是绝对的( $ ),所以它不会随着Excels在范围内复制而改变。 还要记得按CTRL + ALT + ENTER ,而不是仅仅input ,告诉Excel你正在input一个数组公式。 接下来将这些数据复制到一个新的位置(仅限于数值),并按字母顺序降序排列:

在这里输入图像描述

最后一步是把这个sorting的数据转置,以获得最终的结果:

在这里输入图像说明

再次,这涉及使用TRANSPOSE函数与数组公式。

现在,您的原始数据按列分类。