【问题标题】:LibreOffice Calc - how to drag-fill a series from multiple rows that all reference the same rowLibreOffice Calc - 如何从所有引用同一行的多行中拖动填充系列
【发布时间】:2019-01-14 15:05:04
【问题描述】:

我的几行单元格都引用了另一张纸上的一行:

=Sheet2.A1
=Sheet2.B1
=Sheet2.C1

当我选择这些单元格并拖动填充柄来填充下面的单元格时,Calc 会像这样填充它们:

=Sheet2.A4
=Sheet2.B4
=Sheet2.C4
=Sheet2.A7
=Sheet2.B7
=Sheet2.C7
etc.

我猜是因为每个新行都比原始行低三个单元格。

这不是我想要的行为 - 我想将它们填充到一个系列中,如下所示:

=Sheet2.A2
=Sheet2.B2
=Sheet2.C2
=Sheet2.A3
=Sheet2.B3
=Sheet2.C3
=Sheet2.A4
=Sheet2.B4
=Sheet2.C4
etc.

任何想法如何做到这一点?

我想使用公式或手动方式来执行此操作 - 我不熟悉宏,因此请尽可能避免使用。

【问题讨论】:

    标签: libreoffice autofill libreoffice-calc


    【解决方案1】:

    手动方式(我喜欢这个建议,我以前从未想过使用 Calc 来自动化填写电子表格公式的过程,但它是可行的):

    1. 打开一个新的 Calc 文件
    2. 将单元格 A1 格式化为文本
    3. 类型 =Sheet2。进入 A1(A1 现在应该显示 =Sheet2。字面意思)
    4. 将 A B C 分别输入 B1、B2 和 B3
    5. 选择 B1 到 B3 并向下拖动(它应该重复系列 A、B、C、A、B、C...)
    6. 在 C1 中键入 =FLOOR((ROW()-1)/3)+2(ROW() 从 1 开始计数,因此是 -1)
    7. 向下拖动(它应该给你系列 2,2,2,3,3,3,4,4,4...)
    8. 在 D1 中键入 =A$1&B1&C1(D1 现在应按字面意思显示 =Sheet2.A2)
    9. 向下拖动 D1,它应该会为您提供所需的系列
    10. 现在:复制那个
    11. 将其粘贴到任何记事本或类似的纯文本编辑器中
    12. 复制那个
    13. 将其粘贴到您希望将这一系列参考放在首位的 Calc 电子表格中
    14. 它应该会打开一个文本导入对话框 - 只需确保将所有内容都粘贴到一列中并点击确定

    • 优点:当您的同事看到您这样做时,从现在开始您将被视为 LibreOffice 之神
    • 缺点:不是很动态(如果有变化,您将不得不重复整个过程)

    公式方式: 使用OFFSET。 例如:=OFFSET(Sheet2.$A$2;FLOOR((ROW()-1)/3);MOD(ROW()-1;3))

    • 优点:更容易修改
    • 缺点:如果结果不符合您的预期,则更难调试

    【讨论】:

    • 太棒了,谢谢。我喜欢你手动方法的创造力,但公式是我所追求的。谢谢。
    猜你喜欢
    • 2020-08-13
    • 2017-01-27
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多