Có thể tham khảo toàn bộ một cột trong Bảng tính Google bằng định dạng R1C1 không?


12

Trong Bảng tính Google, tôi thường sử dụng ký hiệu A1 để chỉ toàn bộ cột:

A1:A

Vì những lý do tôi giải thích bên dưới, tôi muốn sử dụng định dạng R1C1, để chỉ toàn bộ một cột, đại loại như:

R1C1:C1

Không thể sử dụng A1: A trong Excel, do ký hiệu R1C1 có nguồn gốc từ Excel, có vẻ như không thể thực hiện được điều này trong ký hiệu R1C1. Nếu có, nó sẽ làm cho cuộc sống của tôi dễ dàng hơn.

Bối cảnh: Tôi có một lượt truy cập bảng tính, lấy thông tin từ dữ liệu bảng tính khác, có định dạng thay đổi động.

Để giải quyết vấn đề này, tôi sử dụng một công thức để tạo một địa chỉ trong một ô, dựa trên cách bố trí dữ liệu hiện tại. Sau đó tôi có thể tham chiếu ô địa chỉ này trong các công thức khác bằng cách sử dụng gián tiếp. Và việc tạo địa chỉ bằng R1C1 dễ dàng hơn nhiều so với A1.


"Vì không thể sử dụng A1: A trong excel" - bạn có nghĩa là "Vì không thể sử dụng R1C1 trong excel"?
Vidar S. Ramdal

Không, ý tôi là phạm vi A1: A chỉ hoạt động trong Google Docs - với excel bạn phải chỉ định cả hàng và cột cho cuối phạm vi.
s6mike

5
Tôi không thể đọc ký hiệu R1C1 mà không thắc mắc về R2D2.
Sony Santos

Câu trả lời:


2

Câu trả lời ngắn

Có, có thể giới thiệu toàn bộ một cột bằng cách sử dụng ký hiệu R1C1: Sử dụng INDIRECT("C1",FALSE)

Giải trình

Google Sheets không bao gồm một tính năng để thay đổi ký hiệu tham chiếu từ A1 sang R1C1 nhưng cuối cùng có thể được sử dụng với chức năng tích hợp INDIRECT .

Thí dụ

Trong một trang tính có 1000 hàng, công thức sau sẽ trả về 1000

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

2
Thiên tài! Cảm ơn :) Bây giờ đã gần 4 năm trôi qua kể từ khi tôi đặt câu hỏi, bây giờ tôi chỉ cần nhớ những gì tôi đã làm khi tôi hỏi nó!
s6mike

6

Ký hiệu A1 được hỗ trợ ngay bây giờ. Đến trung tâm cột A:

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

1
Ký hiệu A1 luôn được hỗ trợ, nhưng các câu hỏi của tôi hỏi liệu có thể sử dụng ký hiệu R1C1 để chỉ toàn bộ một cột trong Bảng tính Google hay không.
s6mike

2

Không, nhưng bạn có thể làm việc xung quanh nó, bằng cách biết hàng nào là hàng cuối cùng với dữ liệu trong một cột, sử dụng COUNTAhàm.

INDIRECT("A1:A") có thể được viết một cái gì đó như INDIRECT("R1C1:R" & COUNTA(R1C1:R1000C1) & "C1")

Bạn cần xác định giá trị 'hàng tối đa' hợp lý. Tôi đã sử dụng 1000 trong ví dụ, vì vậy công thức này sẽ hoạt động trong một bảng tính có tới 1000 hàng.

Tra cứu COUNTAtrong danh sách chức năng Bảng tính Google .


Bây giờ là có thể (xem câu trả lời của tôi . Có lẽ điều này đã được giới thiệu trên Google Sheets mới.
Rubén

Ah, thật tuyệt!
Vidar S. Ramdal

-1

Các định dạng chấp nhận được khác nhau tùy thuộc vào phương pháp được sử dụng. Trong một này , ví dụ, mô tả cho phép ký hiệu R1C1, nhưng nó không rõ ràng (với tôi ít nhất) cho dù đầu vào hay đầu ra là ký hiệu R1C1.

Tôi khuyên bạn nên chấp nhận sử dụng getRange(row, column, numRows, numColumns)thay thế (Tài liệu chính thức ở đây ). Dựa trên các chi tiết nhất định về mục đích sử dụng của bạn, điều này sẽ phù hợp với mục đích của bạn khá tốt. Tôi thường sử dụng một biến cho tham số 'hàng' để lấy toàn bộ phạm vi giá trị trong một vòng lặp. ví dụ: getRange(row, 2, 1, 7)trong đó hàng = 3 sẽ trả về phạm vi C2:C8. Sau đó, chỉ cần tăng 'hàng' để trả về phạm vi tiếp theo D2: D8.


1
Bạn không trả lời câu hỏi làm thế nào để tham khảo toàn bộ cột, thay vì một số tuyến đường được chỉ định trong cột đó. Không nên sử dụng getRange nhiều lần trong một vòng lặp trừ khi cần thiết, điều này dẫn đến các vấn đề về hạn ngạch và hiệu suất kém.

1
Đối với những gì bạn tìm thấy không rõ ràng trong phương thức getRange: đầu ra của nó là một đối tượng phạm vi, không phải là một chuỗi, vì vậy không có câu hỏi nào về ký hiệu cho nó. Ký hiệu được chỉ định cho đầu vào, đó là một chuỗi.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.