如何重新排列或重新排序 LibreOffice Calc 中工作表的内容?
更具体地说,我的具体情况如下:
我有一张 1 列 130 行的电子表格。每行包含一个引文(一串字符?)。
例如:
The dog ate the biscuits!
Set theory demolishes clouds.
Hello world?
我想按照以下要求重新排列/重新排序这些引文:
58 89 40 36 39 41 117 99 ...
经过重新排列/重新排序后,原来位于第 58 行的引语将位于第 1 行;原来位于第 89 行的引语将位于第 2 行;原来位于第 40 行的引语将位于第 3 行;第 36 行到第 4 行;等等……
我有一组总共 130 个数字的序列(1-130)(58 89 40 36 39 41 117 99...),我希望按照这些数字进行重新排序/重新排列。
我如何使用 LibreOffice Calc 根据这个新顺序、这个数字序列重新排列/重新排序工作表的内容?
答案1
把你的引文放在 A 列,把你的序列放在 B 列。
在 C 列中,使用
=INDEX($A1:$A130,B1)
将其复制并粘贴到 C 列下方。
index 命令会根据您提供的索引提取某个范围的内容。由于您的序列是您希望 A 列项目所处的顺序,因此 C 列将按正确的顺序填充。
一旦有了 C 列,您就可以复制并特殊粘贴将其转换为文本,方法是在粘贴选项中仅选中文本。
答案2
这是一个可能的解决方案:
首先,创建排序列
第二,将排序列附加到您的文本列并根据排序列进行排序。
下面是一个较短序列的示例,采用单步骤,将字符串A B C D E F G H I
重新排列为I A H B G C F D E
(这是根据序列重新排列9 1 8 2 7 3 6 4 5
- 字符串从第 9 位到第一位,从第 1 位到第二位,从第 8 位到第三位,依此类推):
根据排序顺序创建排序行
- 将排序序列粘贴到文本文件中,保存为
order.csv
(.csv
很重要!); - 使用 OpenOffice.org Calc打开
order.csv
;您将获得一张包含单元格 A1 到 I1 的表格,其中包含该序列。 添加第二行,数字从 1 开始(只需输入 1 和 2,标记单元格并扩展范围,其余数字将自动填充)。您的工作表将如下所示:
将表格的行转换为列:
- 选择 A1 至 I2,
cut
(CTRL+ X)- 选择 A1
Paste Special
(CTRL++ SHIFT)V,在Paste Special
对话框中,从选项中选择Transpose
。结果将如下所示:
- 对订单序列进行排序(A列),结果如下:
现在,您在 B 列中有了“目标行”。
将排序列应用于字符串列
将第一部分的 B 列复制到包含字符串的 Calc 表中。结果将如下所示:
现在,字符串旁边就有了目标行。只需根据 B 列对表格进行排序即可。结果将如下所示: