我的 Google 表格中的单元格包含这样的公式
=IF(REGEXMATCH(K12;"Oui");IF(AND(REGEXMATCH($C12;"Oui"); REGEXMATCH(K12;"Oui"));L$7;L$8);0)
这个福尔马拉变成了
=SIERREUR(__xludf.dummyfunction("IF(REGEXMATCH(K12,""Oui""),IF(AND(REGEXMATCH($C12,""Oui""), REGEXMATCH(K12,""Oui"")),L$7,L$8),0)");11)
在 Libreoffice Calc 中。
出了什么问题?有办法解决这个问题吗?
您的表达式不包含任何 正则表达式 特殊字符,因此您还可以使用 Google Sheets 和 LibreOffice 中都存在的
find()
函数。
像这样修改你的公式:
=if(not(iserror(find("Oui"; K12))); if(not(iserror(find("Oui"; $C12))); L$7; L$8); 0)
如果您需要实际的正则表达式,则每次从 Google Sheets 移动到 LibreOffice 后都必须编辑公式。
LibreOffice没有
regexmatch()
功能,但它有一个REGEX()
功能,可以用来模仿前者。例如:
=NOT(ISERROR(REGEX("Non Oui Si"; "Oui")))
...将给出
TRUE
,同时:
=NOT(ISERROR(REGEX("Dweezil"; "Oui")))
...将给予
FALSE
。
这些 LibreOffice 表达式与 Google Sheets 中的
regexmatch()
相同,除了正则表达式模式中存在某些差异。
参见: