Tham chiếu động một Cột bảng được đặt tên (thông qua nội dung ô) trong Excel


12

Làm cách nào để tôi tham chiếu một cột bảng Excel động trong Excel 2007? Tôi muốn tham chiếu một cột được đặt tên của một bảng được đặt tên và cột được tham chiếu sẽ thay đổi theo giá trị của một ô.

Tôi có một bảng trong Excel (hãy gọi nó là Bảng1 ). Tôi muốn tham chiếu một trong các cột của nó và COUNTcác số trong cột đó. Tôi muốn xác định động cột được tham chiếu từ một giá trị trong một ô khác ( A1) để tôi có thể đạt được kết quả sau: Khi tôi thay đổi A1, công thức đếm Bảng1 [ DynamivelyReferencedColumnName ] được cập nhật vào tham chiếu mới.

Thí dụ:

  • Nếu A1= names    thì công thức sẽ bằng COUNT(Table1[names]).
  • Nếu A1= lastnamethì công thức sẽ bằng COUNT(Table1[lastname]).

Tôi đã thử sử dụng =COUNT(Table1[INDIRECT("$A$1")]), nhưng Excel cho biết công thức có lỗi.

Tôi có thể làm cái này như thế nào?


PS Tôi tìm thấy tài liệu MSDN này có thể có liên quan: tính toán lại Excel .


Bạn đang sử dụng phiên bản Excel nào?
CharlieRB

Hiện đang sử dụng Excel 2007
RCphq

Tôi nghĩ rằng câu hỏi này cũng có thể được viết lại là: "tham chiếu một thành phần động của một tham chiếu có cấu trúc trong excel".
jiggunjer

Câu trả lời:


13

Bạn gần như đã có nó với INDIRECT(), nhưng logic của bạn là một chút. Hãy thử điều này thay thế:

=COUNT(INDIRECT("Table1["&A1&"]"))

Chìa khóa cần nhớ là INDIRECT()chỉ lấy văn bản (nghĩa là một chuỗi) cho đối số đầu tiên. Vì vậy, bạn phải chuyển tất cả các phần của tham chiếu bảng cho hàm dưới dạng văn bản.


Thực sự nó đã làm việc, tôi cần tham khảo toàn bộ bảng. cái này hiệu quả cảm ơn!
RCphq

15

Sử dụng phương pháp INDIRECT hoạt động, nhưng tốt nhất nên tránh bất cứ khi nào có thể vì đây là một hàm dễ bay hơi và có thể có tác động tính toán lớn trên bảng tính của bạn.

Một thay thế không dễ bay hơi thực hiện những gì bạn muốn là sử dụng INDEX / MATCH

COUNT(INDEX(Table1, 0, MATCH($A$1, Table1[#Headers], 0)))

-Tim


Excelent, tôi thực sự đã bắt gặp phương pháp này sau này và đã sử dụng nó kể từ đó. Thật trùng hợp, tôi bắt đầu nhận thấy sự chậm chạp lớn trên các bảng tính cũ hơn, nơi tôi đang sử dụng gián tiếp trên hơn một chục tờ. Cảm ơn!
RCphq

2

Bước đầu tiên thiết lập một ô văn bản chứa tên của cột mà bạn cần tham chiếu (ví dụ $ A $ 1) $ A $ 1 chứa "Cột2" chẳng hạn.

sau đó để tìm số đếm của cột mà $ A $ 1 đề cập đến sẽ là = Count (gián tiếp ("Bảng1 [" & $ a $ 1 & "]"))

phương pháp gián tiếp này có thể được sử dụng để xây dựng tất cả các phần của tham chiếu bảng và ví dụ cũng có thể được sắp xếp để tra cứu từ các bảng khác nhau

tiền boa. nếu ô $ a $ 1 được xác thực là danh sách thả xuống trỏ đến các tiêu đề của bảng đơn, thì mọi thay đổi đối với số cột trong bảng của bất kỳ thay đổi nào đối với tiêu đề sẽ được chọn.


1
(1) Bước đầu tiên: đặt tên của cột mong muốn vào một ô như A1.  OP đã làm điều này, và nói như vậy trong câu hỏi.   (2) Bước thứ hai là bản sao chính xác câu trả lời của Excellll . (4) Định cấu hình A1dưới dạng thả xuống của các tên cột hợp lệ có vẻ như là một ý tưởng hay, nhưng tôi không hiểu phần còn lại của đoạn cuối của câu trả lời.
Scott

1

Đây là một bài viết rất hay về các tài liệu tham khảo có cấu trúc trong Excel. Nó sẽ xuất hiện một chút khác biệt trong Excel 2010 so với Excel 2007.

Sử dụng tham chiếu có cấu trúc với các bảng Excel

Về cơ bản, bạn sẽ tham chiếu bảng và sau đó là cột trong bảng.

Bảng Excel chung

Trong ví dụ này, bạn có thể tham khảo Bảng 1 Cột 1 như thế này:

=COUNT(Table1[Column1])

Bạn có thể đặt tên cho các cột tiêu đề trong bảng của bạn. Nếu tôi đổi tên Cột1 thành Bán hàng, công thức sẽ trở thành:

=COUNT(Table1[Sales])

Vâng bàn của tôi được đặt tên theo đúng với các cột khác nhau, những gì tôi muốn là một phương pháp để TELL excel gì cột i muốn tùy thuộc vào giá trị tế bào, một cái gì đó như thế này =COUNT(Table1[A1])đâu A1 là các tế bào tôi muốn chứa columnname
rcphq
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.