Разбить ячейку с разделителями запятыми на несколько строк, сохраняя детали строки - PullRequest
0 голосов
/ 05 марта 2020

Я ищу фрагмент скрипта или формулы приложения, который преобразовал бы что-то вроде первого примера ниже во что-то вроде второго, где ячейка нескольких местоположений разбивается на новые строки и сохраняет исходные значения строк. Кто-нибудь, пожалуйста, есть какие-либо предложения?

С уважением

enter image description here enter image description here

1 Ответ

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

Сохранить этот скрипт в редакторе скриптов

/** 
 * Splits the array by commas in the column with given index, by given delimiter
 * @param {A2:B20}  range Range reference
 * @param {2}  colToSplit Column index
 * @param {","}  delimiter Character by which to split
 * @customfunction
 */


function advancedSplit(range, colToSplit, delimiter) {
    var resArr = [], row;
    range.forEach(function (r) {
        r[colToSplit-1].toString().split(delimiter)
            .forEach(function (s) {
                row = [];
                r.forEach(function (c, k) {               
                    row.push( (k === colToSplit-1) ? s.trim() : c);
                })
                resArr.push(row);
            })
    })
    return resArr;
}

Затем во второй вкладке введите эту формулу

=advancedSplit(Sheet1!A:F, 6, ", ")

и посмотрите, работает ли это?

Исходные данные:

Source data

Выход:

Output

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...