代码之家  ›  专栏  ›  技术社区  ›  Alec

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

  •  0
  • Alec  · 技术社区  · 7 年前

    我在“自定义公式”框中尝试了此公式:

    =DETECTLANGUAGE(A:A)=ja
    

    1 回复  |  直到 7 年前
        1
  •  0
  •   player0    7 年前

    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


    检测语言 在用于英语检测的数组中:

    =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), )), "-")

        2
  •  1
  •   TheMaster    7 年前

    =QUERY(A:A,"where A matches '.*[\p{Hiragana}\p{Katakana}\p{Han}]+.*'")
    
    • .* 匹配任意字符的次数不受限制
    • []+
    • \p{...} 的Unicode类 Han Hiragana Katakana 脚本
    • 请注意,regex应该与整个单元格匹配。按照现在写的方式,即使有一个 平假名 片假名 找到字符。