如何使用过滤器仅显示Google表格中包含日语的单元格?

问题描述 投票:-1回答:2

我在自定义公式框中尝试了这个公式:

=DETECTLANGUAGE(A:A)=ja

但它不起作用。所有细胞都被隐藏了。我究竟做错了什么?

regex google-apps-script google-sheets array-formulas google-sheets-formula
2个回答
0
投票

请注意,DETECTLANGUAGE不适用于数组/范围,所以只有:

=IF(DETECTLANGUAGE(A1)="ja", "Japanese", )

0


但你可以使用一个脚本:

function NIPPON(input) {
     var output = [];
     for (i = 0 ; i < input.length; i++){
    try {
    output[i] = LanguageApp.translate(input[i], '', 'ja');
    }
    catch(err) {
      output[i] = err.message;
      }
      }   return output; }

=ARRAYFORMULA(FILTER(A1:A, IF(LEN(A1:A)=LEN(NIPPON(A1:A)), LEN(A1:A), )>0))

0


在数组中使用DETECTLANGUAGE进行英语检测的示例:

=IFERROR(ARRAYFORMULA(IF(LEN(A5:A), IF({DETECTLANGUAGE(A5)="en"; DETECTLANGUAGE(A6)="en"; DETECTLANGUAGE(A7)="en"; DETECTLANGUAGE(A8)="en"; DETECTLANGUAGE(A9)="en"; DETECTLANGUAGE(A10)="en"}, LEN(A5:A), 0), )), "-")


1
投票

您可以使用查询的正则表达式(preg):

=QUERY(A:A,"where A matches '.*[\p{Hiragana}\p{Katakana}\p{Han}]+.*'")
  • .*无限次匹配任何角色
  • []+在一次和无限次之间匹配任何角色
  • 用于\p{...}HanHiragana脚本的KatakanaUnicode类
  • 请注意,正则表达式应与完整单元格匹配。它现在写的方式,即使找到HanHiraganaKatakana字符之一,它也将返回单元格。
© www.soinside.com 2019 - 2024. All rights reserved.