/**
* Аналог функции split. Разбивает по наличию жирности у текста
* [ ProgrammerForever (c) 2020 ]
* @param {"A1"} rangeName Имя ячейки
* @return Возвращает массив строк с чередующейся жирностью
* @customfunction
*/
function splitByBold(rangeName) {
if (!rangeName) {
throw "Параметр rangeName не задан. Должен быть адресом ячейки"
};
var rtv = SpreadsheetApp.getActiveSheet().getRange(rangeName).getRichTextValue();
if (rtv) {
rtv=rtv.getRuns()
}else{
return SpreadsheetApp.getActiveRange().getValue();
};
var outData = [rtv[0].getText()];
var isBold = rtv[0].getTextStyle().isBold();
var k=0;
for (var i = 1; i < rtv.length; i++){
if (rtv[i].getTextStyle().isBold() === isBold){
outData[k]+= rtv[i].getText();
}else{
k+=1;
outData[k]= rtv[i].getText();
isBold = rtv[i].getTextStyle().isBold();
};
};
return outData;
}