【发布时间】:2014-09-29 07:38:14
【问题描述】:
我们都知道标准过滤器,您可以在其中根据特定列(或多列)中的值选择要显示的行。 是否有可能相同,但根据单行的值选择哪些列应该可见? 到目前为止,我唯一的想法是编写宏或手动执行。
【问题讨论】:
标签: excel libreoffice openoffice-calc libreoffice-calc
我们都知道标准过滤器,您可以在其中根据特定列(或多列)中的值选择要显示的行。 是否有可能相同,但根据单行的值选择哪些列应该可见? 到目前为止,我唯一的想法是编写宏或手动执行。
【问题讨论】:
标签: excel libreoffice openoffice-calc libreoffice-calc
还不能发表评论,所以:
您可以在您的工具中进行正常的 excel 操作吗,例如:
复制数据区域并pastespecial作为转置,然后对列应用过滤器。
【讨论】:
=TRANSPOSE(...)。确保将其作为矩阵函数插入(向导中的复选框,或单元格编辑中的 Ctrl-Enter。
至于宏,我已经整理了一个小的帮助扩展,它允许将 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())
S[0]中第一个“0”以上是工作表号, S[0][col,0] 中的第二个“0”是您的值所在行的索引(第 1 行) 在这里,我只是根据单元格的真实性(!= 0)设置可见性 计算值。使用任何你想要的python表达式
这两行代码应该作为单元格的文本内容放入 -
注意第二行是缩进的,并且 libreoffice 不会将任何命令的首字母更改为大写(并防止默认情况下进行的其他自动转换)
第二个单元格应使用公式=pyexec(B1) 编写(假设代码在单元格b1 中) - 每当您想“重新运行”hte 过滤器时,只需编辑两个单元格中的任何一个即可。
【讨论】: