Automati c Поиск и замена в Google Sheets скриптом - PullRequest
1 голос
/ 02 марта 2020

Я обычно не работаю со скриптами, но я довольно уверен в формулах:

У меня есть список имен учеников в наборе ячеек. Например:

В ячейке AF1 написано: Томми Джонс Марта Льюис Джеймс, Джессика Дженнифер Аннис Боунс, Раймонд

В ячейке AF2 написано:
Джессика Джеймс Боунс, Раймонд Льюис , Марта Дэвидсон, Джоанна Филд, Дженнифер

и т. Д. Для более чем 150 ячеек в этом столбце.

Все затронутые ячейки находятся в столбце AF (они созданы из составного списка - поэтому они являются результатом другой формулы).

Мне нужно убедиться, что все они - Фамилия, Имя.

Я пытался скопировать / вставить из сценариев других людей, которые казались полезными, но я Я расстроился и удалил их всех:

Я пытался создать длинный скрипт, который включал:

var to_replace = "Джонатан Адкинс"; var replace_with = "Адкинс, Джонатан";

var to_replace = "Джошуа Адкинс"; var replace_with = "Адкинс, Джошуа"; (все 400 имен)

и один, включающий:
replaceinsheet (лист, «Джонатан Адкинс», «Адкинс, Джонатан»); лист замены (лист «Джошуа Адкинс», «Адкинс, Джошуа»); (все 400 имен)

и тот, который перечислил их следующим образом: replaceInSheet (values, 'Jonathan Adkins', 'Adkins, Jonathan');

, и я попытался создать дополнительные столбцы рядом с моим сцепленным столбцом, который имеет имена и использует эту формулу: создание сценария для определения = arrayreplace и затем использование этой формулы. = arrayreplace (AF1, AI2: AI, AJ2: AJ)

Я застрял. Может кто-нибудь помочь, пожалуйста?

Я создал образец листа, который, я надеюсь, покажет, о чем я говорю:
https://docs.google.com/spreadsheets/d/1gyAdIxletLuJzubVkOmgYmlgt5iw0Ezul1kS4uLbBu8/edit?usp=sharing

Любая помощь будет с благодарностью принята

1 Ответ

1 голос
/ 02 марта 2020

Встроенный поиск и замена:

  • Выберите диапазон, который вы хотите изменить: Лист1! A1: L10
  • Редактировать> Найти и заменить
  • Найти:

    (\w+),?\s+([A-z]+)
    
  • Заменить:

    $2, $1
    
  • Галочка: Использовать регулярные выражения

  • Нажмите Заменить Все

Формула:

В качестве альтернативы Вы можете использовать

=ARRAYFORMULA(REGEXREPLACE(L2:L10,"(\w+),?\s+(\w+)","$2, $1"))

Пояснения:

  • \w: буква (\w ord)
  • ,: буквальный ,
  • \s: A s темп
  • +: один или несколько из предыдущий сопоставленный символ
  • ?: один или ноль предыдущего сопоставленного символа
  • (): группа захвата
  • $: замена пронумерованной группы захвата
...