Чи можна звернутися до цілого стовпця в електронних таблицях Google, використовуючи формат R1C1?


12

У електронних таблицях Google я часто використовую позначення A1 для позначення цілого стовпця:

A1:A

З причин, пояснених нижче, я хотів би використовувати формат R1C1 для позначення цілого стовпця, наприклад:

R1C1:C1

Використовувати A1: A в Excel неможливо, тому що позначення R1C1 походять від Excel, мабуть, це можливо зробити в нотації R1C1. Якби це було, це полегшило б мені життя.

Передумови: я відвідую електронну таблицю, яка витягує інформацію з інших даних електронних таблиць, у яких динамічно змінюється формат.

Щоб обійти це, я використовую формулу для генерування адреси в комірці на основі поточного макета даних. Тоді я можу посилатись на цю клітинку адреси в інших формулах, використовуючи непрямі. І набагато простіше генерувати адресу, використовуючи R1C1, ніж A1.


"Як не можна використовувати A1: A в excel" - ви маєте на увазі "Як не можна використовувати R1C1 в excel"?
Відар С. Рамдал

Ні, я мав на увазі, що діапазон A1: A працює лише в Документах Google - за допомогою excel вам потрібно вказати і рядок, і стовпець для кінця діапазону.
s6mike

5
Я не можу читати позначення R1C1, не замислюючись про R2D2.
Sony Santos

Відповіді:


3

Коротка відповідь

Так, можна віднести цілий стовпець, використовуючи позначення R1C1: Використовувати INDIRECT("C1",FALSE)

Пояснення

Таблиці Google не включає в себе функцію для зміни опорного позначення від А1 до R1C1 , але останній може бути використані з НЕПРЯМІ вбудованою функцією.

Приклад

У аркуші, що має 1000 рядків, наступна формула поверне 1000

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

2
Геніальний! Дякую :) Зараз минуло майже 4 роки, як я поставив запитання, тепер мені просто потрібно згадати, що я робив, коли запитував!
s6mike

6

Нотація A1 зараз підтримується. До центру стовпця A:

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

1
Позначення A1 завжди підтримувалося, але мої запитання задають, чи можна використовувати позначення R1C1 для позначення цілого стовпця в електронних таблицях Google.
s6mike

2

Ні, але ви можете працювати навколо нього, знаючи , який рядок є останнім рядком з даними в стовпці, використовуючи COUNTAфункцію.

INDIRECT("A1:A") можна було написати щось на кшталт INDIRECT("R1C1:R" & COUNTA(R1C1:R1000C1) & "C1")

Вам потрібно визначити чутливе значення "максимальних рядків". У прикладі я використав 1000, тож ця формула повинна працювати в електронній таблиці до 1000 рядків.

Знайдіть COUNTAу списку функцій Електронні таблиці Google .


Тепер це можливо (див. Мою відповідь . Можливо, це було представлено у нових Google Таблицях.
Rubén

Ах, це чудово!
Відар С. Рамдал

-1

Прийнятний формат змінюється залежно від використовуваного методу. У цьому одному , наприклад, опис допускає R1C1 позначень, але неясно (мені принаймні) вхідний або вихідний , чи є R1C1 позначення.

Я рекомендую прийняти використання getRange(row, column, numRows, numColumns)замість цього ( Офіційний документ тут ). Виходячи з наведених деталей передбачуваного використання, це цілком відповідає вашим цілям. Я часто використовую змінну для параметра 'рядок', щоб отримати цілий діапазон значень у циклі. наприклад, getRange(row, 2, 1, 7)де рядок = 3 повертає діапазон C2:C8. Потім просто збільшуйте "рядок", щоб повернути наступний діапазон D2: D8.


1
Ви не відповідаєте на питання, як посилатися на весь стовпець, а не на вказану кількість маршрутів у цьому стовпці. Використання getRange багаторазово в циклі не рекомендується, якщо це не потрібно, це призводить до низької продуктивності та проблем з квотами.

1
Що стосується того, що ви виявили незрозумілим у методі getRange: його вихід - це об'єкт діапазону, а не рядок, тому для нього не виникає питання про позначення. Позначення вказано для введення, який є рядком.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.