Libre-office calc:从不同文件复制单元格并自动寻址单元格编号

Libre-office calc:从不同文件复制单元格并自动寻址单元格编号

在 libre-office 中,我需要将大量数据从一个文件加载到另一个文件中。要加载单元格内容,我使用以下代码:

=DDE("soffice";"file://path-to-my-file/my-file.xlsx";"mysheet.A2")

问题:我需要加载很多单元格,但无法手动编写每个 DDE 命令(或复制粘贴)

我需要复制的单元格编号遵循一个简单的规则,即以 10 为增量。下面给出了我的单元格所需的代码示例,其中单元格编号位于 <brackets> 中。

cell1: =DDE("soffice";"file://path-to-my-file/my-file.xlsx";"mysheet.A<X>")

cell2: =DDE("soffice";"file://path-to-my-file/my-file.xlsx";"mysheet.A<X+10>")

cell3: =DDE("soffice";"file://path-to-my-file/my-file.xlsx";"mysheet.A<X+20>")

我以为只要写三行单元格,然后拖动单元格进行复制,这个数字就会自动增加相应的量。但这并不奏效,它只是一遍又一遍地复制这三个条目。

有没有一种简单的方法来“编码”这个,这样我就不必手动写入/复制所有单元格?

答案1

我正在寻找的函数被称为抵消并且同时存在于EXCEL和Libre Office中。

=OFFSET('file:///home/path/to/my/file/my-file.xlsx'#$my_sheet.$B$2, (ROW()-1)*3,0)
  1. 第一个参数是 my-file.xlsx 的完整路径,包括工作表并以单元格结尾。重要提示:$行和列都是绝对强制性的。
  2. 第二个参数是行选择。*10每 10 行选择一次。-1是必要的,因为在我的目标笔记本中,我相对原始数据的位置移动了一行。
  3. 第三个参数可用于列选择。由于我只对行选择感兴趣,因此我将其保留为零。

如果将此单元格向下拖动,其他单元格将会填充所需的值。

我在这里描述的语法对于 Microsoft Office、LibreOffice 和 OpenOffice 略有不同。例如,用于分隔参数的字符是“,”或“;”。

相关内容