Czy można odwoływać się do całej kolumny w Arkuszach kalkulacyjnych Google w formacie R1C1?


12

W arkuszach kalkulacyjnych Google często używam notacji A1 w odniesieniu do całej kolumny:

A1:A

Z powodów, które wyjaśnię poniżej, chciałbym użyć formatu R1C1, aby odnieść się do całej kolumny, coś w stylu:

R1C1:C1

Nie można używać A1: A w Excelu, więc ponieważ notacja R1C1 pochodzi z Excela, wydaje się mało prawdopodobne, aby można to zrobić w notacji R1C1. Jeśli tak, ułatwiłoby mi to życie.

Tło: Mam wizyty w arkuszu kalkulacyjnym, który pobiera informacje z innych danych arkusza kalkulacyjnego, który ma dynamicznie zmieniający się format.

Aby obejść ten problem, używam formuły do ​​generowania adresu w komórce, w oparciu o bieżący układ danych. Następnie mogę odwoływać się do tej komórki adresu w innych formułach, używając pośrednio. Znacznie łatwiej jest wygenerować adres przy użyciu R1C1 niż A1.


„Ponieważ nie można używać A1: A w programie Excel” - masz na myśli „Ponieważ nie można używać R1C1 w programie Excel”?
Vidar S. Ramdal

Nie, miałem na myśli, że zakres A1: A działa tylko w Dokumentach Google - w programie Excel musisz określić zarówno wiersz, jak i kolumnę na końcu zakresu.
s6mike 18.10.12

5
Nie mogę odczytać notacji R1C1, nie zastanawiając się nad notowaniem R2D2.
Sony Santos,

Odpowiedzi:


3

Krótka odpowiedź

Tak, możliwe jest odesłanie całej kolumny za pomocą notacji R1C1: Użyj INDIRECT("C1",FALSE)

Wyjaśnienie

Arkusze Google nie zawiera funkcji, aby zmienić zapis odniesienia od A1 do R1C1 ale ostatni mógł być używany z POŚREDNIE wbudowanej funkcji.

Przykład

W arkuszu zawierającym 1000 wierszy poniższa formuła zwróci 1000

=ROWS(INDIRECT("C1",FALSE)) 

2
Geniusz! Dzięki :) Teraz minęły prawie 4 lata, odkąd zadałem pytanie, teraz muszę tylko pamiętać, co robiłem, kiedy zadawałem to pytanie!
s6mike

6

Notacja A1 jest teraz obsługiwana. Aby wyśrodkować kolumnę A:

SpreadsheetApp.getActiveSheet().getRange("A1:A").setHorizontalAlignment("center");

1
Notacja A1 zawsze była obsługiwana, ale moje pytania dotyczą tego, czy można użyć notacji R1C1 w celu odniesienia do całej kolumny w Arkuszach kalkulacyjnych Google.
s6mike,

2

Nie, ale możesz obejść ten problem, wiedząc, który wiersz jest ostatnim wierszem z danymi w kolumnie, za pomocą COUNTAfunkcji.

INDIRECT("A1:A") można by napisać coś takiego INDIRECT("R1C1:R" & COUNTA(R1C1:R1000C1) & "C1")

Musisz określić rozsądną wartość „maksymalnych wierszy”. Użyłem 1000 w tym przykładzie, więc ta formuła powinna działać w arkuszu kalkulacyjnym zawierającym do 1000 wierszy.

Wyszukaj COUNTAna liście funkcji Arkuszy kalkulacyjnych Google .


Teraz jest to możliwe (zobacz moją odpowiedź . Może zostało to wprowadzone w nowych Arkuszach Google.
Rubén

Ach, to wspaniale!
Vidar S. Ramdal,

-1

Dopuszczalny format różni się w zależności od zastosowanej metody. W tym na przykład opis pozwala na notację R1C1, ale nie jest jasne (przynajmniej dla mnie), czy wejście lub wyjście jest notacją R1C1.

Zalecam stosowanie getRange(row, column, numRows, numColumns)zamiast tego ( oficjalny dokument tutaj ). W oparciu o podane szczegóły zamierzonego zastosowania byłoby to całkiem dobrze dostosowane do twoich celów. Często używam zmiennej dla parametru „row”, aby pobrać cały zakres wartości w pętli. np. getRange(row, 2, 1, 7)gdzie wiersz = 3 zwróci zakres C2:C8. Następnie po prostu zwiększ „wiersz”, aby zwrócić następny zakres D2: D8.


1
Nie odpowiadasz na pytanie, jak odwoływać się do całej kolumny, zamiast określonej liczby tras w tej kolumnie. Wielokrotne używanie getRange w pętli nie jest zalecane, chyba że jest to konieczne, prowadzi to do słabej wydajności i problemów z przydziałem.

1
Co do tego, co znalazłeś niejasne w metodzie getRange: jego wynik jest obiektem zakresu, a nie ciągiem, więc nie ma dla niego kwestii notacji. Notacja jest określona dla danych wejściowych, które są ciągiem znaków.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.