Nano Hash - криптовалюты, майнинг, программирование

Скрипт для копирования частей строки электронной таблицы Google в другую электронную таблицу и добавления значения на основе ячейки

Я очень новичок в кодировании и действительно изо всех сил пытаюсь написать этот код. Я надеюсь, что кто-то там может помочь мне. Вот что я пытаюсь выполнить:

Когда «y» или «y» помещаются в столбец 19 («S») в «Обзор двухнедельного снимка 2018 года для Джима», я хочу скопировать столбцы B: G и J: R этой строки.

Поместите эту скопированную строку в другую электронную таблицу под названием «Бухгалтерский учет» с вкладкой «Необработанные данные счета» в столбцах C:Q.

Затем мне нужно написать в столбце B этой вставленной строки «JT».

Наконец, измените исходное «y» на «Copied».

Вот ссылка на оба тестовых документа, если это поможет.

Снимок за 2 недели

Учет

function myFunction(e) {
  var sourceSheetName = "Reviewed 2018 2 Week Snapshot for Jim";
  var destinationSpreadsheetId = "1l1f6SrN7d6hYDhfv8W_ne15vAd7xSJlC6138jpoXpC4";
  var destinationSheetName = "Unprocessed Acct Data";

  if (e.source.getSheetName() == sourceSheetName && e.range.getcolumn() == 19 && e.value.toUpperCase() == "Y") {
    var sourceValues = e.source.getRange("B:G" && "J:R").getValues().filter(function(e){return e.filter(String).length > 0});
    var tss = SpreadsheetApp.openById(destinationSpreadsheetId);
    var ts = tss.getSheetByName(destinationSheetName);
    ts.getRange(ts.getLastRow() + 1, 1, sourceValues.length, sourceValues[0].length).setValues(sourceValues);
  }
}

Ответы:


1

Если я правильно понимаю ваш вопрос, как насчет этой модификации? Я думаю, что есть несколько ответов для вашей ситуации. Поэтому, пожалуйста, думайте об этом как об одном из них.

Точки модификации:

  • Retrieve values of "B:R" as a source values from Reviewed 2018 2 Week Snapshot for Jim.
    • Values from column "B" to column "R" of a row that Y was put is retrieved.
  • Получите значения "B:G" и "J:R" из исходных значений и добавьте "JT".
  • Поместите измененные значения в "B:Q" до Unprocessed Acct Data электронной таблицы с идентификатором файла 1l1f6SrN7d6hYDhfv8W_ne15vAd7xSJlC6138jpoXpC4.
  • Измените Y на Copied на Reviewed 2018 2 Week Snapshot for Jim.

Модифицированный скрипт:

Пожалуйста, измените следующим образом.

From:
if (e.source.getSheetName() == sourceSheetName && e.range.getcolumn() == 19 && e.value.toUpperCase() == "Y") {
  var sourceValues = e.source.getRange("B:G" && "J:R").getValues().filter(function(e){return e.filter(String).length > 0});
  var tss = SpreadsheetApp.openById(destinationSpreadsheetId);
  var ts = tss.getSheetByName(destinationSheetName);
  ts.getRange(ts.getLastRow() + 1, 1, sourceValues.length, sourceValues[0].length).setValues(sourceValues);
}
To:
if (e.source.getSheetName() == sourceSheetName && e.range.getColumn() == 19 && e.value.toUpperCase() == "Y") {
  var row = e.range.getRow();
  var sourceValues = e.source.getRange("B" + row + ":R" + row).getValues()[0];
  var values = [sourceValues.slice(0, 6).concat(sourceValues.slice(8, 17))];
  values[0].unshift("JT");
  var tss = SpreadsheetApp.openById(destinationSpreadsheetId);
  var ts = tss.getSheetByName(destinationSheetName);
  ts.getRange(ts.getLastRow() + 1, 2, values.length, values[0].length).setValues(values);
  e.range.setValue("Copied");
}

Примечание:

  • В вашей общей электронной таблице есть несколько проектов и функций. Поэтому, когда вы используете этот модифицированный скрипт, дайте новое имя функции (например, myFunction2(e)) и установите для него триггер. Если имя функции дублируется, скрипт работает некорректно.

Если я неправильно понимаю ваш вопрос, пожалуйста, скажите мне. Я хотел бы изменить его.

05.09.2018
  • Ваш ответ отлично работает в тестовых листах. Когда я переношу его на реальный лист и заменяю электронную таблицу идентификатором файла, он перестает работать. Я пробовал оба триггера onEdit и каждую минуту. Как мне проверить, где он терпит неудачу? 06.09.2018
  • @Leilani Спасибо за ответ. Я рад узнать, что мое понимание вашего вопроса было правильным, и сценарий сработал. Что касается вашего нового выпуска, к сожалению, я не могу понять вашу ситуацию. Речь идет о stops working, измененном скрипте и вашей электронной таблице. Можете ли вы предоставить их? Если вы можете сделать, пожалуйста, добавьте это к вашему вопросу. Я хотел бы подумать о вашей новой проблеме, зная, как вы изменили сценарий и установили его. Я очень сожалею о моем плохом знании английского. 06.09.2018
  • @Leilani Что касается важных моментов, я думаю, что если формат и имена листов электронной таблицы совпадают между электронной таблицей вашего вопроса и вашей фактической электронной таблицей, а функция установлена ​​​​в качестве триггера, сценарий работает. Поэтому сначала подтвердите их. А также можете ли вы подтвердить, что в нескольких проектах вашей электронной таблицы нет повторяющихся имен функций? Даже если вы подтвердили их, когда проблема не была решена, можете ли вы предоставить информацию, которую я прокомментировал выше? 06.09.2018
  • Я подтвердил названия листов и отсутствие повторяющихся функций под названием myFunction(e). К сожалению, политика Google моей компании очень заблокирована, поэтому я не могу поделиться фактическими таблицами. Могу ли я добавить журналы к этому, чтобы увидеть, где он может дать сбой? 06.09.2018
  • @Leilani Я не могу решить проблемы напрямую без подробной информации. Я очень сожалею о своем плохом мастерстве. Но, например, как насчет того, чтобы скопировать значения фактического листа на рабочий лист с помощью модифицированного скрипта? В этом случае среда такая же, как и у обрабатываемого листа. Даже если вы это сделали, если это не сработало, можете ли вы предоставить образец электронной таблицы, в которой воспроизведена та же проблема? Могу я спросить вас о stops working? Я не могу понять этого значения. 07.09.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..