За да получите нотация R1C1 от нотация A1 в електронна таблица на Google с помощта на GAS

Трябва да получа адреса на обхвата в нотация R1 C1 предвид нотацията A1. Не намерих вградена формула, която да го направи. т.е. ако предам A3:C8, тогава изходът трябва да бъде 3 1 8 3 в нотация r1c1

function getRangeAddress() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var range = sheet.getActiveRange()
    if (range) var rangeAddress = range.getA1Notation();
    else var rangeAddress = sheet.getActiveRange().getA1Notation();
    return rangeAddress;
}

converttoR1C1(rangeAddress);

person Code Guy    schedule 05.04.2017    source източник
comment
Какъв е вашият въпрос?   -  person Robin Gertenbach    schedule 05.04.2017
comment
Ако подавам A3:C8, тогава изходът трябва да бъде 3 1 8 3 в нотация r1c1. Надявам се това да е ясно   -  person Code Guy    schedule 05.04.2017


Отговори (2)


Можем да използваме ADDRESS, за да получим адреса на R1C1. Тъй като изисква индексите на редове и колони, можем да използваме ROW, COLUMN, ROWS и COLUMNS, за да получим съответните индекси.

Следната формула ще върне адреса R1C1 на клетката, съдържаща формулата

=ADDRESS(ROW(),COLUMN(),1,FALSE)

В някои други сценарии може да имаме нужда от R1C1, като използваме Google Apps Script, в този можем да използваме getRow и getColumn, за да получим началните индекси на клетките. Използвайте getNumRows и getNumColumns и изчислете съответните индекси за крайната клетка.

Пример:

function toR1C1(reference) {
  var range = SpreadsheetApp.getActiveSheet().getRange(reference);
  var row = range.getRow();
  var column = range.getColumn();
  var start = 'R' + row + 'C' + column;
  var rows = range.getNumRows();
  var columns = range.getNumColumns();
  var end = ((rows * columns) == 1)?'':':R' + (row + rows - 1) + 'C' + (column + columns - 1);
  return start + end;
}
person Rubén    schedule 01.12.2017
comment
Само за наблюдатели, резултатът ще бъде нещо като R1C3:R1C17 - person Cheeso; 06.09.2018

Можете да използвате асоциативен масив като нещо като справочна таблица.

var Alpha2Numeric = {A:1,B:2,C:3....} тогава е просто въпрос на обръщане на низовете от всяка страна на дебелото черво и преобразуване на буквите в числа с Alpha2Numeric[CapitalLetter]

person Cooper    schedule 05.04.2017