选择具有条件的特定行? LibreOffice 计算

Posted

技术标签:

【中文标题】选择具有条件的特定行? LibreOffice 计算【英文标题】:Selecting a specific row with a condition ? LibreOffice Calc 【发布时间】:2017-08-23 09:52:52 【问题描述】:

我有这个 LibreOffice calc 文件,其中的原始数据全为零

raw1 raw2 raw3 raw4 raw5 raw6 raw7 raw8 raw9 
 0    0    0    0    C    0    0    0    0
 0    0    0    0    0    0    0    W    0

我只想打印行内的字符,像这样

Result 
  C
  W

我确实尝试了'if'条件

IF(CD2:CR16 = 1, CD2:CR16)

但它给了我一个错误

【问题讨论】:

【参考方案1】:

使用MATCH 查找包含字符的列,然后使用INDEX 获取单元格的值。

=INDEX(CD2:CR2, MATCH("[A-Z]", CD2:CR2, 0))

为此,请转到工具 -> 选项 -> LibreOffice Calc -> 计算,然后选择 Enable regular expressions in formulas

编辑

根据https://help.libreoffice.org/Common/List_of_Regular_Expressions,[:print:] 代表任何可打印的字符,因此它会抓取第一个零,这可能就是它似乎没有做你想做的事情的原因。

要匹配几个单词之一,正则表达式应该是这样的:

"word1|word2|word3"

或者对于由一个或多个字母组成的任何单词:

"[:alpha:]+"

编辑 2

要分别从0 0 C 08 0 0 0 获取C 和8,请使用"[A-Z1-9]"

【讨论】:

非常感谢,您已经回答了我的问题,但是如果它不是一个字符,我试图使用手册中的一个词 [:print:] 但它不起作用 你想匹配什么类型的词——所有的字母还是一些特殊字符?请参阅编辑后的答案。 非常感谢,是的,字母和数字(数字和特殊字符)都可以 但问题是我所有的行都是零,所以当我使用 [:alnum:] 时它给我一个零。例如 0 0 0 0 8 0 0 0 答案是 0,应该是 8

以上是关于选择具有条件的特定行? LibreOffice 计算的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008 R2 在特定条件下选择特定行

LibreOffice 电子表格:使用特定过滤器选择随机单元格

尝试在特定条件下将行合并为一行

选择具有多列的范围时,Countifs 不起作用

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

如果条件为真,如何循环 LibreOffice Calc 电子表格中的行范围、比较单元格值、设置单元格值和删除行