在LibreOffice或其他SpreadSheet工具中应用基于行的过滤器而不是列

时间:2014-09-29 07:38:14

标签: excel libreoffice openoffice-calc libreoffice-calc

我们都知道标准过滤器,您可以根据特定列(或列)中的值选择要显示的行。 它是否完全相同,但根据单行的值选择哪些列应该可见? 到目前为止,我唯一的想法是编写宏或手动执行。

2 个答案:

答案 0 :(得分:4)

无法发表评论,所以:

您可以在工具中执行正常的Excel操作,例如:

复制数据区域,将 pastespecial 复制为转置,然后将过滤器应用于列。

答案 1 :(得分:0)

对于宏,我已经组合了一个小的帮助扩展,允许人们将python代码直接写入单元格 - 检查它 https://github.com/jsbueno/librepylot/releases/tag/0.7

安装后,单元格中的以下代码可以执行您想要的操作:

for col in range(0, 26): #A - Z
   S[0]._sheet.Columns.getByIndex(col)  =  bool(S[0][col, 0]._cell.getValue())

在第一个" 0"之上在S [0]中是表格编号,   第二个" 0"在S [0] [col,0]中是您的值的行的索引(第1行)   在这里,我只是根据单元格的真实性(!= 0)设置可见性 计算值。使用你想要的任何python表达式

这两行代码应作为单元格的文本内容放入 - 注意第二行是缩进的,并且libreoffice不会将任何命令的第一个字母更改为大写(并阻止默认情况下进行其他自动转换) 第二个单元格应使用公式=pyexec(B1)编写(假设代码位于单元格b1中) - 每当您想要重新运行时#34;过滤,只需编辑两个单元格中的任何一个。