Скрипт Google для разделения правых строковых значений

Я хотел бы выполнить функцию разделения для определенного диапазона. Например, если у меня есть строка типа «HYT008», мне нужно, чтобы в результате было только 008, что означает, что я хотел бы разделить последние 3 буквы из строки.

Вот сценарий -

В Google Sheet я буду выполнять это условие как =RIGHT(A2:A,3)

В сценарии Google Apps мне нужно выполнить действие.

какова очевидная выгода от того, что сценарий делает это, по сравнению с формулой?

Erik Tyler 18.12.2020 18:34

Вот строковые методы JavaScript: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

Cooper 18.12.2020 18:35

Мой лист застревает, пока я выполняю правильную формулу,

Moses 18.12.2020 18:35

У меня есть 30k+ данных, которые нужно разделить следующим образом.

Moses 18.12.2020 18:35

Вы пробовали =arrayformula(right(a2:a30000,3))

TheMaster 18.12.2020 18:53

Я думаю, формула массива будет работать, но формулы тяжелее, чем печатные значения. Если ему не нужно постоянно обновлять значения, я также считаю, что сценарий имеет больше смысла. Кстати, я добавил решение arrayformula для встряски завершения @TheMaster

Marios 18.12.2020 19:06

@Marios Жестко закодированные значения можно легко получить только путем копирования>вставки. На самом деле скрипт полезен только в том случае, если оператору нужно делать это неоднократно под триггерами или какой-то автоматизацией. Одноразовых легко достичь с помощью только формул.

TheMaster 18.12.2020 20:13
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Раскрытие чувствительных данных
Раскрытие чувствительных данных
Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не...
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Руководство ChatGPT по продаже мини JS-файлов
Руководство ChatGPT по продаже мини JS-файлов
JS-файл - это файл, содержащий код JavaScript. JavaScript - это язык программирования, который в основном используется для добавления интерактивности...
1
7
2 830
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Объяснение:

Есть несколько способов сделать это в JavaScript.

  • Один из способов — использовать метод slice и получить последние 3 элемента вашей строки: string.slice(-3).

  • затем вы можете использовать карту, чтобы применить эту операцию к полному столбцу по вашему выбору:

    sh.getRange('A2:A'+sh.getLastRow()).getValues().flat().map(v=>[v.slice(-3)]);

Сценарий Google Apps:

Следующий скрипт получит значения в столбце A, получит последние 3 элемента и вставит их в столбец B:

function myFunction() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName('Sheet1'); // adjust this to the name of your sheet
  const values = sh.getRange('A2:A'+sh.getLastRow()).getValues().flat().map(v=>[v.slice(-3)]);
  sh.getRange(2,2,values.length,1).setValues(values); // paste them in column B
}

Лист, используемый для фрагмента кода:


Решение формулы Google Sheets:

Здесь вам не нужно определять последний элемент вашего столбца.

=arrayformula(if (len(A2:A),right(A2:A,3),""))

Результат:

@Moses Я также добавил формулу массива на случай, если вы сможете ее использовать, это может быть весьма полезно.

Marios 18.12.2020 19:10

Полный ответ с хорошим объяснением. +1

NightEye 18.12.2020 19:13

Другие вопросы по теме