Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 使用脚本在Google工作表中自动搜索和替换_Google Apps Script_Text_Google Sheets_Find Replace - Fatal编程技术网

Google apps script 使用脚本在Google工作表中自动搜索和替换

Google apps script 使用脚本在Google工作表中自动搜索和替换,google-apps-script,text,google-sheets,find-replace,Google Apps Script,Text,Google Sheets,Find Replace,我通常不使用脚本,但我对公式相当有信心: 我在一组单元格中有一个学生姓名列表。 例如: 在细胞AF1中,它说: 汤米·琼斯 玛尔塔·刘易斯 詹姆斯,杰西卡 詹妮弗·安妮斯 骨头,雷蒙德 在细胞AF2中,它说: 杰西卡·詹姆士 骨头,雷蒙德 刘易斯,玛尔塔 戴维森,乔安娜 菲尔德,詹妮弗 在该列中有150多个单元格 所有受影响的单元格都在AF列中(它们是从串联列表中创建的,因此它们是不同公式的结果) 我需要确保他们都是姓,名 我一直试图复制/粘贴其他人的脚本,这些脚本似乎很有用,但我感到沮丧,并将

我通常不使用脚本,但我对公式相当有信心:

我在一组单元格中有一个学生姓名列表。 例如:

在细胞AF1中,它说: 汤米·琼斯 玛尔塔·刘易斯 詹姆斯,杰西卡 詹妮弗·安妮斯 骨头,雷蒙德

在细胞AF2中,它说:
杰西卡·詹姆士 骨头,雷蒙德 刘易斯,玛尔塔 戴维森,乔安娜 菲尔德,詹妮弗

在该列中有150多个单元格

所有受影响的单元格都在AF列中(它们是从串联列表中创建的,因此它们是不同公式的结果)

我需要确保他们都是姓,名

我一直试图复制/粘贴其他人的脚本,这些脚本似乎很有用,但我感到沮丧,并将它们全部删除:

我尝试创建一个长脚本,其中包括:

var to_replace=“Jonathan Adkins”; var将_替换为=“阿德金斯,乔纳森”

var to_replace=“Joshua Adkins”; var将_替换为=“阿德金斯,约书亚”; (全部400个姓名)

其中包括:
替换表(表“乔纳森·阿德金斯”,“阿德金斯,乔纳森”); 替换表(表“约书亚·阿德金斯”,“阿德金斯,约书亚”); (全部400个姓名)

其中一个是这样列出的: 替换表(值为“Jonathan Adkins”、“Adkins,Jonathan”)

我尝试在连接的列旁边创建其他列,该列具有名称并使用以下公式: 创建脚本以定义=arrayreplace,然后使用此公式。 =阵列替换(AF1,AI2:AI,AJ2:AJ)

我卡住了。有人能帮忙吗

我创建了一个示例表,希望能展示我所说的内容:

如有任何帮助,将不胜感激

内置查找和替换:
  • 选择要更改的范围:Sheet1!A1:L10
  • 编辑>查找和替换
  • 查找:

    (\w+),?\s+([A-z]+)
    
  • 替换:

    $2, $1
    
  • 选中标记:使用正则表达式

  • 单击“全部替换”
公式: 或者,你可以使用

=ARRAYFORMULA(REGEXREPLACE(L2:L10,"(\w+),?\s+(\w+)","$2, $1"))
说明:
  • \w
    :一封信(
    \w
    ord)
  • :文字
  • \s
    :一种
    s
    节奏
  • +
    :一个或多个先前匹配的字符
  • :前一个匹配字符的一个或零个
  • ()
    :捕获组
  • $
    :替换编号的捕获组

内置的查找/替换将需要我执行380多次,如果我以后添加,我将不得不再次执行所有操作。我很想使用公式,但当文本不是整个单元格时,我不知道如何合并所有可能的更改。姓和名有什么区别?“我以前给一位名叫乔治·乔治的女士送报纸。”伊丽莎解释说你会怎么做it@Eliza非常感谢。然而,这似乎改变了名字,不管它们是否错了。有些名字已经是最后的,第一的,有些是最后的。我需要把第一个变成最后一个,第一个。此外,我还被一张在一个单元格中有多个名称作为列表的工作表所困扰。结束列表也必须采用该格式。我还希望使用相同的脚本/公式来处理学生有另一个名字的情况:Michael Bacon-->Mike Bacon-->Bacon,Mike(尽管我可以通过多个步骤来完成)。非常感谢你为我做这件事@伊丽莎似乎在换名字,不管他们是否错了。有些名字已经是最后的,第一的,有些是最后的。有什么区别?逗号?计算机如何知道哪些名字已经在最后,第一?第一。此外,我还被一张在一个单元格中有多个名称作为列表的工作表所困扰。结束列表也必须采用该格式。ye公式和内置fr都不会改变格式。是的,区别在于逗号。在一个牢房里,我们有:杰西卡·詹姆斯·琼斯,汤米·杰西卡是名字。姓詹姆斯。汤米就是这个名字。琼斯是他的姓。我需要那个牢房说:詹姆斯,杰西卡·琼斯,汤米,即使在另一个牢房里,它已经是正确的了。太棒了!然而,这似乎只修复了每个单元格中的第一个事件-有没有办法确保它在每个单元格中执行所有事件?@Eliza it为我替换所有事件。确保禁用所有其他设置,如“查找替换”中的“匹配整个单元格”。