2011-01-27 30 views
76

Tôi muốn lấy nội dung của một ô cho số hàng và cột của nó. Số hàng và cột được lưu trữ trong các ô (ở đây B1, B2). Tôi biết các giải pháp sau đây hoạt động, nhưng họ cảm thấy một chút hacky.Nhận nội dung của một ô được cung cấp số hàng và cột

Sol 1

=CELL("contents",INDIRECT(ADDRESS(B1,B2))) 

Sol 2

=CELL("contents",OFFSET($A$1, B1-1,B2-1)) 

Có không có phương pháp ít tiết? (như = CellValue (hàng, col) hoặc bất kỳ thứ gì)?

Chỉnh sửa/làm rõ: Tôi chỉ muốn sử dụng công thức bảng tính excel. Không có VBA. Trong ngắn hạn, tôi khá nhiều tìm kiếm tương đương với các phương pháp VBA Cells() như là một công thức excel.

+0

Chúng ta có thể có thêm một chút ngữ cảnh không? Bạn chỉ sử dụng công thức Excel? VBA? Một số phương pháp khác? –

Trả lời

118

Bạn không cần phần CELL() của công thức của bạn:

=INDIRECT(ADDRESS(B1,B2)) 

hoặc

=OFFSET($A$1, B1-1,B2-1) 

cả hai sẽ làm việc. Lưu ý rằng cả hai INDIRECTOFFSET đều là các hàm dễ bay hơi. Các hàm dễ bay hơi có thể làm chậm tính toán vì chúng được tính toán ở mọi lần tính toán lại.

+0

Điều này đủ hữu ích mà tôi muốn xem nó được chỉnh sửa để có đúng số lượng ngoặc đơn đóng. – Wyck

+6

Do sự phổ biến của câu hỏi/câu trả lời này, thật tuyệt vời khi có một câu nhỏ ở đây về những gì [chức năng dễ bay hơi] (https://msdn.microsoft.com/en-us/library/office/bb687891.aspx # sectionSection2). – LondonRob

+0

Lưu ý rằng với biểu mẫu thứ hai, tùy thuộc vào $ a $ 1, bạn bắt buộc phải di chuyển $ a $ 1 theo bất kỳ cách nào trong các chỉnh sửa sau của trang tính. – Erk

20

Hãy thử = index (ARRAY, ROW, COLUMN)

nơi: Array: chọn toàn bộ sheet Row, Column: hàng và cột bạn tham chiếu

Đó nên là dễ hiểu để những người tìm kiếm tại công thức.

1

Tôi mất một lúc, nhưng dưới đây là cách tôi làm cho nó hoạt động. Nó không phụ thuộc vào một bảng được sắp xếp.

Trước tiên, tôi bắt đầu với một cột tên tiểu bang (Cột A) và một cột máy bay ở mỗi tiểu bang (Cột B). (Hàng 1 là hàng tiêu đề).

Tìm các tế bào có chứa số lượng máy bay là:

=MATCH(MAX($B$2:$B$54),$B$2:$B$54,0)+MIN(ROW($B$2:$B$54))-1 

tôi đặt đó vào một tế bào và sau đó đã đưa ra rằng tế bào một cái tên, "StateRow" Sau đó, sử dụng các mẹo từ trên cao, tôi lên vết thương với điều này:

=INDIRECT(ADDRESS(StateRow,1)) 

này trả về tên của nhà nước từ các giá trị động trong hàng "StateRow", cột 1

Bây giờ, khi các giá trị trong đếm thay đổi cột theo thời gian khi có nhiều dữ liệu hơn được nhập vào, tôi luôn biết trạng thái nào có nhiều máy bay nhất.

Các vấn đề liên quan