Использование СУПЕР INDIRECT

Использование СУПЕР INDIRECT


Вытягиваем инфу из Листов и ячеек расположенных в одном месте на указанных листах

Код на PasteBin

function getSheetsName() {

 var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets()

 return sheets.map(sh=>[sh.getName()])

}

function superIndirect(range) {

 var addr=(cell)=>{

  var [sheetName,A1Not]=cell.split("!")

  return SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName.replace(/'/g,"")).getRange(A1Not).getValue()

}

// var test= [["'Кат_83 4 3,5'!B13","'Кат_83 4 3,5'!D13"],["'Кат_83 4 3,5'!B13","'Кат_83 4 3,5'!D13"]]

 var map=(addr,row)=>(row)=>row.map(addr)

 var mapA=map(addr)

 var reduc=(t,row)=>{return [...t,mapA(row)]}

 return range.reduce(reduc,[])

  

}


function superAddress(rangeSheet,rangeA1not){

 rangeSheet=rangeSheet.replace(/=/g,"")

 rangeA1not=rangeA1not.replace(/=/g,"")

 return `=superIndirect(arrayformula(ADDRESS(transpose(value(REGEXEXTRACT(${rangeA1not};"\\d{1,3}")));transpose(code(REGEXEXTRACT(${rangeA1not};"\\w"))-64);4;TRUE;${rangeSheet})))`

}


Report Page