- Вы хотите добиться конвертации из
RAW DATA
в DESIRED RESULT
в вашей общей электронной таблице. - Вы хотите добиться этого, используя пользовательскую функцию.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Пример сценария:
Когда используется ваша общая таблица, поместите формулу =result(A3:E6)
в ячейку.
function result(values) {
return values.reduce(function(ar, e) {
var [colD, colE] = e.slice(-2).map(function(f) {
return f.split("\n").map(function(g) {return g.split(/\s+/)[1] || g});
});
return ar.concat(colD.map(function(f, j) {return e.slice(0, 3).concat([f, colE[j]])}));
}, []);
}
- Сначала значения столбцов "D" и "E" разделяются.
- В качестве следующего шага каждая строка создается из разделенных значений.
Результат:
Примечание:
- Этот образец сценария можно использовать для образца электронной таблицы. Если формат значений изменяется, сценарий может быть недоступен. Пожалуйста, будьте осторожны.
Список литературы:
Если я неправильно понял ваш вопрос, и это был не результат, вы хочу, я прошу прощения.
Добавлено:
Из вашей второй общей таблицы я подготовил скрипт для преобразования из RAW DATA
в DESIRED RESULT
. Я думал, что столбец «D» отличается от 1-й общей таблицы в вашей 2-й общей таблице. В этом случае "1 email1@sample.com\n2 email2@sample.com\n3 email3@sample.com"
требуется преобразовать в Bill
, Steve
и Ted
. Но это не может быть сделано. Поэтому я подготовил следующий пример сценария, используя ваши первые логи c. Это как email1@sample.com
, email2@sample.com
и email3@sample.com
.
Пример сценария:
Чтобы использовать этот сценарий, поместите =result(A3:O6)
в ячейку.
function result(values) {
return values.reduce(function(ar, e) {
var head = e.splice(0, 3);
var [colD, colE] = e.splice(0, 2).map(function(f) {return f.split("\n").map(function(g) {return g.split(/\s+/)[1] || g})});
var values = colD.map(function(f, j) {return head.concat([f, colE[j]]).concat(e)});
return ar.concat(values);
}, []);
}