7

В листах Google я хотел бы, чтобы моя пользовательская функция использовала одну из встроенных функций. В частности, эта функция будет принимать строку в качестве параметра, расчесывать другой лист, чтобы найти это значение, а затем вернуть ссылку на адрес этой ячейки.Использование встроенной функции внутри пользовательской функции

function href(findMe) { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var hrefSheet = ss.getSheetByName("otherSheet"); 
    hrefSheet.activate(); 
    var rows = hrefSheet.getDataRange(); 
    var numRows = rows.getNumRows(); 
    var finds = rows.getValues()[1][0]; 

    var hrefCellRow; 

    for(var i=0; i<numRows; i++){ 
    if(finds[i][0] == findMe){ 
     hrefCellRow = i+1; 
     break; 
    } 
    } 

    return address(hrefCellRow, 1); //address() is a function that is built in to sheets 

} 

Так что, если у меня есть значение «XYZ» в листе «otherSheet», когда я печатаю

=href("XYZ") 

Я хотел бы, чтобы попытаться найти значение XYZ и возвращает адрес для активная ячейка. Дополнительный престиж, если он возвращает фактическую ссылку, которая при нажатии, переходит в эту ячейку.

+0

Если это правда, то это будет не так просто, как я надеялся: https://productforums.google.com/forum/#!topic/docs/1Vab4UYYG_0 – ZAR

+3

Ужасно, что это не работает. В основном вы не можете использовать какие-либо существующие функции электронных таблиц в пользовательской функции. Если вы попытаетесь использовать JOIN, например, в пользовательской функции, это приводит к ошибкам, говоря, что «JOIN не определен». Точно так же вы не можете использовать другие функции, такие как SORT, ARRAYFORMULA и т. Д. Я абсолютно ошеломлен этим дизайнерским решением; он делает всю функцию бесполезной. – Triynko

+1

Возможный дубликат [пользовательской функции Google Таблицы, сделанной из встроенных функций электронной таблицы] (http://stackoverflow.com/questions/17631870/google-spreadsheet-custom-function-made-of-built-in-spreadsheet-functions) –

ответ

1

Я не думал об этом раньше. Я мог бы просто использовать функцию адреса вне сценария и иметь встроенную функцию встроенной функции (вместо обратного, что я пытался сделать). это не так красиво, но это было бы просто

=address(href(findMe),1) 

До сих пор не нашли способ сделать ссылку на другую ячейку, не возможно создать функцию, которая будет сбросить активную ячейку?

 Смежные вопросы

  • Нет связанных вопросов^_^