代码之家  ›  专栏  ›  技术社区  ›  Lee Blake

按索引号引用图纸

  •  5
  • Lee Blake  · 技术社区  · 6 年前

    我有一个LibreOffice Calc电子表格,用来记录我工作中的应收账款。每张表列出了发票及其状态(已付款、未付款等)以及每张发票的相关信息。我试图创建一个摘要表,列出每个表中的某些数据。手动创建工作表很容易,但我正在尝试“自动化”该过程。如果我在文件中添加和删除帐户时添加(或删除)新工作表,我希望摘要页面自动更新。

    我知道LibreOffice为每张工作表分配了一个索引号,我可以在某种公式中引用该索引号,但我找不到一个函数,当我从其中的单元格中获取值时,可以用来引用该索引号。有人会期望像表(2)这样的函数会引用第二个表,但是,唉,事实并非如此!

    我尝试过使用间接函数和地址函数,但没有成功,但我不确定我是否不理解这些函数,或者它们是否不适合我试图实现的目标。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Jim K    6 年前

    很长一段时间以来,这一直是Calc中缺失的一部分。首选的解决方案是编写用户定义的函数。电子表格公式不按索引号访问工作表,但基本公式可以。

    以下函数来自 https://ask.libreoffice.org/en/question/16604/how-do-i-access-the-current-sheet-name-in-formula-to-use-in-indirect/ .

    Function SheetName(Optional nSheet)
    If IsMissing(nSheet) Then
        SheetName = ThisComponent.getCurrentController().getActiveSheet().getName()
    Else
        SheetName = ThisComponent.getSheets().getByIndex(nSheet-1).getName()
    EndIf
    End Function
    

    然后得到第一个单元格A1的相对地址,如下所示。

    =ADDRESS(1,1,4,,SHEETNAME(1))
    

    下面给出了一个稍有不同的函数 https://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=49799 .