Mục lục
Trong hướng dẫn này, bạn sẽ tìm thấy một số ví dụ về công thức thể hiện cách sử dụng INDEX hiệu quả nhất trong Excel.
Trong số tất cả các hàm Excel có sức mạnh thường bị đánh giá thấp và sử dụng không đúng mức, INDEX chắc chắn sẽ xếp hạng đâu đó trong top 10. Trong khi đó, chức năng này rất thông minh, linh hoạt và linh hoạt.
Vậy hàm INDEX trong Excel là gì? Về cơ bản, một công thức INDEX trả về một tham chiếu ô từ bên trong một mảng hoặc phạm vi nhất định. Nói cách khác, bạn sử dụng INDEX khi bạn biết (hoặc có thể tính toán) vị trí của một phần tử trong một dải ô và bạn muốn lấy giá trị thực của phần tử đó.
Điều này nghe có vẻ hơi tầm thường, nhưng một khi bạn nhận ra tiềm năng thực sự của hàm INDEX, nó có thể tạo ra những thay đổi quan trọng đối với cách bạn tính toán, phân tích và trình bày dữ liệu trong trang tính của mình.
Hàm INDEX trong Excel - cú pháp và cách sử dụng cơ bản
Có hai phiên bản của hàm INDEX trong Excel - dạng mảng và dạng tham chiếu. Cả hai biểu mẫu đều có thể được sử dụng trong tất cả các phiên bản của Microsoft Excel 365 - 2003.
Dạng mảng INDEX
Dạng mảng INDEX trả về giá trị của một phần tử nhất định trong một dải hoặc mảng dựa trên hàng và số cột bạn chỉ định.
INDEX(array, row_num, [column_num])- array - là một dải ô, dải ô đã đặt tên hoặc bảng.
- row_num - là số hàng trong mảng mà từ đó trả về một giá trị. Nếu row_num làtrả về một giá trị, nhưng trong công thức này, toán tử tham chiếu (:) buộc nó trả về một tham chiếu). Và bởi vì $A$1 là điểm bắt đầu của chúng ta nên kết quả cuối cùng của công thức là phạm vi $A$1:$A$9.
Ảnh chụp màn hình sau đây minh họa cách bạn có thể sử dụng công thức Chỉ mục đó để tạo tỷ lệ thả động danh sách xuống.
Mẹo. Cách dễ nhất để tạo danh sách thả xuống được cập nhật động là tạo danh sách được đặt tên dựa trên bảng. Trong trường hợp này, bạn sẽ không cần bất kỳ công thức phức tạp nào vì bảng Excel tự nó là phạm vi động.
Bạn cũng có thể sử dụng hàm INDEX để tạo danh sách thả xuống phụ thuộc và hướng dẫn sau giải thích các bước: Tạo danh sách thả xuống xếp tầng trong Excel.
5. Vlookup mạnh mẽ với INDEX / MATCH
Thực hiện tra cứu theo chiều dọc - đây là lúc chức năng INDEX thực sự tỏa sáng. Nếu bạn đã từng thử sử dụng hàm VLOOKUP trong Excel thì bạn sẽ biết rõ về nhiều hạn chế của hàm này, chẳng hạn như không thể kéo các giá trị từ các cột sang bên trái của cột tra cứu hoặc giới hạn 255 ký tự cho một giá trị tra cứu.
Hàm Liên kết INDEX/MATCH vượt trội so với VLOOKUP ở nhiều khía cạnh:
- Không có vấn đề gì với vlookup bên trái.
- Không giới hạn kích thước giá trị tra cứu.
- Không cần sắp xếp bắt buộc (Vlookup với kết quả khớp gần đúng yêu cầu sắp xếp cột tra cứu theo thứ tự tăng dần).
- Bạn có thể tự do chèn và xóa các cột trong bảng mà không cần cập nhậtmọi công thức liên quan.
- Và điều cuối cùng nhưng không kém phần quan trọng, INDEX / MATCH không làm chậm Excel của bạn như nhiều Vlookup vẫn làm.
Bạn sử dụng INDEX / MATCH theo cách sau :
=INDEX ( cột để trả về giá trị từ , (MATCH ( giá trị tra cứu , cột để tra cứu so với , 0))Cho ví dụ: nếu chúng ta lật bảng nguồn sao cho Tên hành tinh trở thành cột ngoài cùng bên phải, thì công thức INDEX / MATCH vẫn tìm nạp giá trị phù hợp từ cột bên trái mà không gặp trở ngại nào.
Để biết thêm mẹo và ví dụ về công thức, vui lòng xem hướng dẫn INDEX / MATCH của Excel.
6. Công thức Excel INDEX để lấy 1 phạm vi từ danh sách các phạm vi
Một cách sử dụng thông minh và hiệu quả khác của hàm INDEX trong Excel là khả năng lấy một phạm vi từ danh sách các phạm vi.
Giả sử bạn có nhiều danh sách với số lượng mục khác nhau trong mỗi danh sách. Tin tôi đi hoặc không, bạn có thể tính giá trị trung bình hoặc tính tổng các giá trị trong bất kỳ phạm vi đã chọn nào bằng một công thức duy nhất.
Trước hết, bạn tạo e một phạm vi được đặt tên cho mỗi danh sách; hãy để nó là PlanetsD và MoonsD trong ví dụ này:
Tôi hy vọng hình ảnh trên giải thích lý do đằng sau tên của các dãy :) Nhân tiện, bảng Mặt trăng còn lâu mới hoàn thành, có 176 mặt trăng tự nhiên đã biết trong Hệ Mặt trời của chúng ta, riêng Sao Mộc hiện có 63 mặt trăng và còn tiếp tục tăng. Đối với ví dụ này, tôi đã chọn ngẫu nhiên 11, à... có lẽ không hoàn toàn ngẫu nhiên -mặt trăng với những cái tên đẹp nhất :)
Xin thứ lỗi cho sự lạc đề, hãy quay lại công thức INDEX của chúng tôi. Giả sử rằng PlanetsD là phạm vi 1 của bạn và MoonsD là phạm vi 2 và ô B1 là nơi bạn đặt số phạm vi, bạn có thể sử dụng công thức Chỉ mục sau để tính giá trị trung bình của các giá trị trong phạm vi được đặt tên đã chọn:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))
Xin lưu ý rằng hiện tại chúng tôi đang sử dụng biểu mẫu Tham chiếu của hàm INDEX và số trong đối số cuối cùng (area_num) cho công thức biết phạm vi nào cần chọn.
Trong ảnh chụp màn hình bên dưới, area_num (ô B1) được đặt thành 2, do đó, công thức tính đường kính trung bình của Mặt trăng vì phạm vi Mặt trăngD đứng thứ 2 trong đối số tham chiếu.
Nếu bạn làm việc với nhiều danh sách và không muốn nhớ các số liên quan, bạn có thể sử dụng hàm IF lồng nhau để thực hiện việc này cho mình :
=AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))
Trong hàm IF, bạn sử dụng một số tên danh sách đơn giản và dễ nhớ mà bạn muốn người dùng nhập vào ô B1 thay vì nhập số. Hãy ghi nhớ điều này, để công thức hoạt động chính xác, văn bản trong B1 phải giống hoàn toàn (không phân biệt chữ hoa chữ thường) như trong các tham số của IF, nếu không, công thức Chỉ mục của bạn sẽ đưa ra lỗi #VALUE.
Để làm cho công thức trở nên thân thiện hơn với người dùng, bạn có thể sử dụng Xác thực dữ liệu để tạo danh sách thả xuống với các tên được xác định trước để tránh lỗi chính tả vàin sai:
Cuối cùng, để làm cho công thức INDEX của bạn hoàn toàn hoàn hảo, bạn có thể đặt nó trong hàm IFERROR để nhắc người dùng chọn một mục từ danh sách thả xuống nếu chưa có lựa chọn nào:
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Please select the list!")
Đây là cách bạn sử dụng công thức INDEX trong Excel. Tôi hy vọng những ví dụ này đã chỉ cho bạn cách khai thác tiềm năng của hàm INDEX trong trang tính của bạn. Cảm ơn bạn đã đọc!
bỏ qua, cột_num là bắt buộc. - column_num - là số cột mà từ đó trả về một giá trị. Nếu cột_num bị bỏ qua, thì bắt buộc phải có row_num.
Ví dụ: công thức =INDEX(A1:D6, 4, 3)
trả về giá trị tại giao điểm của hàng thứ 4 và cột thứ 3 trong phạm vi A1:D6, là giá trị trong ô C4 .
Để biết cách thức hoạt động của công thức INDEX trên dữ liệu thực, vui lòng xem ví dụ sau:
Thay vì nhập hàng và số cột trong công thức, bạn có thể cung cấp tham chiếu ô để có công thức phổ biến hơn: =INDEX($B$2:$D$6, G2, G1)
Vì vậy, công thức INDEX này trả về số lượng mặt hàng chính xác tại giao điểm của số sản phẩm được chỉ định trong G2 (row_num ) và số tuần được nhập vào ô G1 (column_num).
Mẹo. Việc sử dụng tham chiếu tuyệt đối ($B$2:$D$6) thay vì tham chiếu tương đối (B2:D6) trong đối số mảng giúp sao chép công thức sang các ô khác dễ dàng hơn. Ngoài ra, bạn có thể chuyển đổi một dải ô thành một bảng ( Ctrl + T ) và gọi nó bằng tên bảng.
Dạng mảng INDEX - những điều cần nhớ
- Nếu đối số mảng chỉ bao gồm một hàng hoặc cột, bạn có thể hoặc không chỉ định đối số row_num hoặc column_num tương ứng.
- Nếu đối số mảng bao gồm nhiều hơn một hàng và row_num bị bỏ qua hoặc được đặt thành 0, thì hàm INDEX sẽ trả về một mảng gồm toàn bộ cột. Tương tự, nếu mảng bao gồm nhiều hơn mộtcột và đối số column_num bị bỏ qua hoặc được đặt thành 0, công thức INDEX sẽ trả về toàn bộ hàng. Đây là một ví dụ về công thức minh họa hành vi này.
- Các đối số row_num và column_num phải tham chiếu đến một ô trong mảng; nếu không, công thức INDEX sẽ trả về lỗi #REF! lỗi.
Dạng tham chiếu INDEX
Dạng tham chiếu của hàm INDEX trong Excel trả về tham chiếu ô tại giao điểm của hàng và cột đã chỉ định.
INDEX(tham chiếu, row_num , [column_num], [area_num] )- tham chiếu - là một hoặc nhiều phạm vi.
Nếu bạn đang nhập nhiều hơn một phạm vi, hãy phân tách các phạm vi bằng dấu phẩy và đặt đối số tham chiếu trong ngoặc đơn, ví dụ: (A1:B5, D1:F5).
Nếu mỗi phạm vi trong tham chiếu chỉ chứa một hàng hoặc cột, đối số row_num hoặc column_num tương ứng là tùy chọn.
- row_num - số hàng trong phạm vi mà từ đó trả về tham chiếu ô, tương tự như mảng biểu mẫu.
- column_num - số cột mà từ đó trả về tham chiếu ô, cũng hoạt động tương tự như biểu mẫu mảng.
- area_num - an tham số tùy chọn chỉ định phạm vi nào từ đối số tham chiếu sẽ sử dụng. Nếu bị bỏ qua, công thức INDEX sẽ trả về kết quả cho phạm vi đầu tiên được liệt kê trong tham chiếu.
Ví dụ: công thức =INDEX((A2:D3, A5:D7), 3, 4, 2)
trả về giá trị của ô D7, nằm ởgiao điểm của hàng thứ 3 và cột thứ 4 trong khu vực thứ hai (A5:D7).
Biểu mẫu tham chiếu INDEX - những điều cần nhớ
- Nếu đối số row_num hoặc column_num được đặt thành 0 (0), công thức INDEX sẽ trả về tham chiếu cho toàn bộ cột hoặc hàng tương ứng.
- Nếu cả row_num và column_num đều bị bỏ qua, hàm INDEX sẽ trả về khu vực được chỉ định trong đối số area_num.
- Tất cả các đối số _num (row_num, column_num và area_num) phải tham chiếu đến một ô trong tham chiếu; nếu không, công thức INDEX sẽ trả về lỗi #REF! lỗi.
Cả hai công thức INDEX mà chúng ta đã thảo luận cho đến nay đều rất đơn giản và chỉ minh họa khái niệm. Các công thức thực của bạn có thể phức tạp hơn thế nhiều, vì vậy, hãy khám phá một số cách sử dụng INDEX hiệu quả nhất trong Excel.
Cách sử dụng hàm INDEX trong Excel - ví dụ về công thức
Có thể có Bản thân INDEX của Excel không có nhiều cách sử dụng trong thực tế, nhưng khi kết hợp với các hàm khác như MATCH hoặc COUNTA, nó có thể tạo ra các công thức rất hiệu quả.
Dữ liệu nguồn
Tất cả các công thức INDEX của chúng tôi (ngoại trừ cái cuối cùng), chúng tôi sẽ sử dụng dữ liệu bên dưới. Để thuận tiện, nó được tổ chức trong một bảng có tên SourceData .
Việc sử dụng bảng hoặc phạm vi được đặt tên có thể tạo công thức dài hơn một chút, nhưng nó cũng làm cho chúng linh hoạt hơn và dễ đọc hơn. Để điều chỉnh bất kỳ INDEX nàocông thức cho trang tính của mình, bạn chỉ cần sửa đổi một tên duy nhất và điều này bù đắp đầy đủ cho độ dài công thức dài hơn.
Tất nhiên, không có gì ngăn cản bạn sử dụng các phạm vi thông thường nếu muốn. Trong trường hợp này, bạn chỉ cần thay thế tên bảng SourceData bằng tham chiếu phạm vi thích hợp.
1. Lấy mục thứ N từ danh sách
Đây là cách sử dụng cơ bản của hàm INDEX và là công thức đơn giản nhất để thực hiện. Để lấy một mục nhất định từ danh sách, bạn chỉ cần viết =INDEX(range, n)
trong đó range là một dải ô hoặc một dải ô đã đặt tên và n là vị trí của mục bạn muốn lấy.
Khi làm việc với bảng Excel, bạn có thể chọn cột bằng chuột và Excel sẽ kéo tên cột cùng với tên bảng trong công thức:
Để lấy giá trị của ô tại giao điểm của hàng và cột đã cho, bạn sử dụng cùng một cách tiếp cận với điểm khác biệt duy nhất là bạn chỉ định cả hai - số hàng và số cột. Trên thực tế, bạn đã thấy một công thức như vậy hoạt động khi chúng ta thảo luận về dạng mảng INDEX.
Và đây là một ví dụ nữa. Trong bảng mẫu của chúng tôi, để tìm hành tinh lớn thứ 2 trong Hệ Mặt trời, bạn sắp xếp bảng theo cột Đường kính và sử dụng công thức INDEX sau:
=INDEX(SourceData, 2, 3)
-
Array
là tên bảng hoặc tham chiếu dải ô, SourceData trong ví dụ này. -
Row_num
là 2 vì bạn đang tìm kiếm mục thứ haitrong danh sách, cột thứ 2 -
Column_num
là 3 vì Đường kính là cột thứ 3 trong bảng.
Nếu bạn muốn trả về hành tinh tên thay vì đường kính, hãy thay đổi column_num thành 1. Và đương nhiên, bạn có thể sử dụng tham chiếu ô trong các đối số row_num và/hoặc column_num để làm cho công thức của bạn linh hoạt hơn, như minh họa trong ảnh chụp màn hình bên dưới:
2. Lấy tất cả các giá trị trong một hàng hoặc cột
Ngoài việc truy xuất một ô duy nhất, hàm INDEX có thể trả về một mảng các giá trị từ toàn bộ hàng hoặc cột . Để lấy tất cả các giá trị từ một cột nhất định, bạn phải bỏ qua đối số row_num hoặc đặt nó thành 0. Tương tự như vậy, để lấy toàn bộ hàng, bạn chuyển giá trị trống hoặc 0 vào column_num.
Những công thức INDEX như vậy khó có thể được sử dụng riêng vì Excel không thể khớp mảng giá trị được công thức trả về trong một ô duy nhất và bạn sẽ nhận được lỗi #VALUE! lỗi thay thế. Tuy nhiên, nếu sử dụng INDEX kết hợp với các hàm khác, chẳng hạn như SUM hoặc AVERAGE, bạn sẽ nhận được kết quả tuyệt vời.
Ví dụ: bạn có thể sử dụng công thức sau để tính nhiệt độ trung bình của hành tinh trong Hệ Mặt trời:
=AVERAGE(INDEX(SourceData, , 4))
Trong công thức trên, đối số column_num là 4 vì Temperature ở cột thứ 4 trong bảng của chúng ta. Tham số row_num bị bỏ qua.
Theo cách tương tự, bạn có thể tìm giá trị tối thiểu và tối đanhiệt độ:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
Và tính tổng khối lượng hành tinh (Khối lượng là cột thứ 2 trong bảng):
=SUM(INDEX(SourceData, , 2))
Từ quan điểm thực tế, hàm INDEX trong công thức trên là không cần thiết. Bạn có thể chỉ cần viết =AVERAGE(range)
hoặc =SUM(range)
và nhận được kết quả tương tự.
Khi làm việc với dữ liệu thực, tính năng này có thể hữu ích như một phần của các công thức phức tạp hơn mà bạn sử dụng để phân tích dữ liệu.
3. Sử dụng hàm INDEX với các hàm khác (SUM, AVERAGE, MAX, MIN)
Từ các ví dụ trước, bạn có thể có ấn tượng rằng một công thức INDEX trả về các giá trị, nhưng thực tế là nó trả về một tham chiếu vào ô chứa giá trị. Và ví dụ này minh họa bản chất thực sự của hàm INDEX trong Excel.
Vì kết quả của công thức INDEX là một tham chiếu nên chúng ta có thể sử dụng nó trong các hàm khác để tạo phạm vi động . Nghe có vẻ khó hiểu? Công thức sau đây sẽ làm cho mọi thứ trở nên rõ ràng.
Giả sử bạn có một công thức =AVERAGE(A1:A10)
trả về giá trị trung bình của các giá trị trong các ô A1:A10. Thay vì viết phạm vi trực tiếp trong công thức, bạn có thể thay thế A1 hoặc A10 hoặc cả hai bằng hàm INDEX, như sau:
=AVERAGE(A1 : INDEX(A1:A20,10))
Cả hai công thức trên đều cho kết quả như nhau kết quả vì hàm INDEX cũng trả về một tham chiếu đến ô A10 (row_num được đặt thành 10, col_num bị bỏ qua). Sự khác biệt là phạm vi là công thức AVERAGE / INDEX là động,và sau khi bạn thay đổi đối số row_num trong INDEX, phạm vi được xử lý bởi hàm AVERAGE sẽ thay đổi và công thức sẽ trả về một kết quả khác.
Rõ ràng, lộ trình của công thức INDEX có vẻ quá phức tạp, nhưng nó có những ứng dụng thực tế , như được minh họa trong các ví dụ sau.
Ví dụ 1. Tính giá trị trung bình của N mục hàng đầu trong danh sách
Giả sử bạn muốn biết đường kính trung bình của N hành tinh lớn nhất trong hệ thống của chúng tôi . Vì vậy, bạn sắp xếp bảng theo cột Đường kính từ lớn nhất đến nhỏ nhất và sử dụng công thức Trung bình / Chỉ số sau:
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
Ví dụ 2. Tính tổng các mục giữa hai mục được chỉ định
Trong trường hợp bạn muốn xác định giới hạn trên và giới hạn dưới trong công thức của mình, bạn chỉ cần sử dụng hai hàm INDEX để trả về giá trị đầu tiên và giá trị cuối cùng mục cuối cùng bạn muốn.
Ví dụ: công thức sau trả về tổng giá trị trong cột Đường kính giữa hai mục được chỉ định trong ô B1 và B2:
=SUM(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))
4. Công thức INDEX để tạo phạm vi động và danh sách thả xuống
Điều thường xảy ra là khi bạn bắt đầu sắp xếp dữ liệu trong một trang tính, bạn có thể không biết cuối cùng mình sẽ có bao nhiêu mục nhập. Đó không phải là trường hợp của bảng các hành tinh của chúng ta, bảng này dường như đã hoàn tất, nhưng ai mà biết được...
Dù sao, nếu bạn có số lượng mục thay đổi trong một cột nhất định, chẳng hạn như từ A1 đến A n ,bạn có thể muốn tạo một dải động được đặt tên bao gồm tất cả các ô có dữ liệu. Khi đó, bạn muốn phạm vi tự động điều chỉnh khi bạn thêm các mục mới hoặc xóa một số mục hiện có. Ví dụ: nếu bạn hiện có 10 mục, phạm vi đã đặt tên của bạn là A1:A10. Nếu bạn thêm một mục nhập mới, phạm vi đã đặt tên sẽ tự động mở rộng thành A1:A11 và nếu bạn đổi ý và xóa dữ liệu mới thêm đó, thì phạm vi sẽ tự động trở lại thành A1:A10.
Ưu điểm chính của điều này phương pháp tiếp cận là bạn không phải cập nhật liên tục tất cả các công thức trong sổ làm việc của mình để đảm bảo chúng tham chiếu đến các phạm vi chính xác.
Một cách để xác định phạm vi động là sử dụng hàm OFFSET của Excel:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
Một giải pháp khả thi khác là sử dụng Excel INDEX cùng với COUNTA:
=Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))
Trong cả hai công thức, A1 là ô chứa mục đầu tiên của danh sách và phạm vi động được tạo bởi cả hai công thức sẽ giống hệt nhau.
Sự khác biệt là ở cách tiếp cận. Trong khi hàm OFFSET di chuyển từ điểm bắt đầu theo một số hàng và/hoặc cột nhất định, hàm INDEX tìm một ô tại giao điểm của một hàng và cột cụ thể. Hàm COUNTA, được sử dụng trong cả hai công thức, lấy số ô không trống trong cột quan tâm.
Trong ví dụ này, có 9 ô không trống trong cột A, vì vậy COUNTA trả về 9. Do đó, INDEX trả về $A$9, là ô được sử dụng cuối cùng trong cột A (thường là INDEX