Vướng mắc hàm Indirect

Liên hệ QC

adult

Thành viên hoạt động
Tham gia
2/12/07
Bài viết
193
Được thích
30
Các anh chị vui lòng xem xét giúp em. Em đang dùng chức năng Help của Micrsoft Excel thì có làm theo vd trong đó. Tại Ô A1 đến B4 là vùng dữ liệu, Ô C1 đến C4 là nơi em đặt công thức indirect theo kiểu =indirect($A$1)
A..................... B................... C............................................................ F
B2................... 1.3333............. =indirect($A$1)==> kết quả: 45.................... =indirect("A1")==> kết quả:B2
B3................... 45................. =indirect($A$2)==> kết quả: 10..................... =indirect("A2")==> kết quả:B3
George.............. 10.................. =indirect($A$3)==> kết quả: #REF!...........
5.................... 62.................. =indirect($A$4)==> kết quả: 0.....................

Sau đó em thay data tại cột A1=Birain thì kết quả tại ô C1 nhảy ra #REF!, còn kết quả tại cột F1 thì nhảy ra Birain.
Thật sự em không biết sự khác nhau giữa 2 cách lập công thức này là gì. Theo em nghĩ cách lập công thức với dấu$$ thì tại cột dữ liệu chỉ cho phép 1 text và nhiều số theo sau( vd:A1,B2000....). Còn cách làm công thức với dấu "" thì không phụ thuộc vào nội dung data là gì nó sẽ lấy hẳn giá trị, tương tự như hàm offset. Các anh chị vui lòng giải thích giúp em, hix, nói chung về nguyên lý của hàm này em chẳng hiểu nói gì. em thấy nhiều bài toán khó mọi người dùng thêm hàm này, em coi mù luôn.
Xin chân thành cám ơn
Anh chị có thể xem trong file đính kèm.!!!
 

File đính kèm

  • vd_indirect.xls
    13.5 KB · Đọc: 118
Lần chỉnh sửa cuối:
Hàm indirect là hàm có thể chuyển được tên của 1 vị trí cột dạng text thành 1 địa chỉ bình thường để tham chiếu. =INDIRECT($A$1): Cái này dịch ra là lấy text của ô A1 đặt vào trong =INDIRECT("B2"), rồi mới lấy toàn bộ công thức trả về =B2 nên kết quả cuối cùng là 45 =INDIRECT("A1"): Cái này thì đã lấy địa chỉ tại ô A1 rồi nên kết quả là B2. Tức là bên trong hàm Indirect chỉ nhận text thôi. Chứ nếu có vị trí tham số thì nó lấy giá trị của tham số đó làm text rồi mới sử dụng hàm Indirect được. =INDIRECT("B"&$A$3): Cái này thì vô lý, khi bạn kết hợp dữ liệu thì nó sẽ thành =INDIRECT("BGeorge") và không tìm được vị trí nào có tên như vậy cả, nên báo lỗi! Đơn giản nhất bạn hãy làm từ từ thôi! Ví dụ: =INDIRECT("B"&1) thì nó sẽ thành =INDIRECT("B1") kết quả là giá trị ô B1. Và bạn cứ thử như vậy cho tên khác số khác sẽ hiểu. Thân.
 
Lần chỉnh sửa cuối:
Các anh chị vui lòng xem xét giúp em. Em đang dùng chức năng Help của Micrsoft Excel thì có làm theo vd trong đó. Tại Ô A1 đến B4 là vùng dữ liệu, Ô C1 đến C4 là nơi em đặt công thức indirect theo kiểu =indirect($A$1)
A..................... B................... C............................................................ F
B2................... 1.3333............. =indirect($A$1)==> kết quả: 45.................... =indirect("A1")==> kết quả:B2
B3................... 45................. =indirect($A$2)==> kết quả: 10..................... =indirect("A2")==> kết quả:B3
George.............. 10.................. =indirect($A$3)==> kết quả: #REF!...........
5.................... 62.................. =indirect($A$4)==> kết quả: 0.....................

Sau đó em thay data tại cột A1=Birain thì kết quả tại ô C1 nhảy ra #REF!, còn kết quả tại cột F1 thì nhảy ra Birain.
Thật sự em không biết sự khác nhau giữa 2 cách lập công thức này là gì. Theo em nghĩ cách lập công thức với dấu$$ thì tại cột dữ liệu chỉ cho phép 1 text và nhiều số theo sau( vd:A1,B2000....). Còn cách làm công thức với dấu "" thì không phụ thuộc vào nội dung data là gì nó sẽ lấy hẳn giá trị, tương tự như hàm offset. Các anh chị vui lòng giải thích giúp em, hix, nói chung về nguyên lý của hàm này em chẳng hiểu nói gì. em thấy nhiều bài toán khó mọi người dùng thêm hàm này, em coi mù luôn.
Xin chân thành cám ơn
Anh chị có thể xem trong file đính kèm.!!!
Mời bạn nghiên cứu thêm về INDIRECT mà BNTT đã trình bày rất chi tiết

INDIRECT (ref_text, a1) : Trả về một tham chiếu từ chuỗi ký tự. Tham chiếu được trả về ngay tức thời để hiển thị nội dung của chúng - Cũng có thể dùng hàm INDIRECT khi muốn thay đổi tham chiếu tới một ô bên trong một công thức mà không cần thay đổi công thức đó
Hàm INDIRECTTrả về một tham chiếu từ chuỗi ký tự. Tham chiếu được trả về ngay tức thời để hiển thị nội dung của chúng. Cũng có thể dùng hàm INDIRECT khi muốn thay đổi tham chiếu tới một ô bên trong một công thức mà không cần thay đổi công thức đó.

Cú pháp: =INDIRECT(ref_text [, a1])
ref_text là tham chiếu tới một ô (có thể là dạng A1 hoặc dạng R1C1), là tên định nghĩa của một tham chiếu, hoặc là một tham chiếu dạng chuỗi.
Nếu ref_text không hợp lệ, INDIRECT() sẽ báo lỗi #REF!
Nếu ref_text chứa tham chiếu đến một bảng tính khác thì bảng tính này phải đang mở, nếu không, INDIRECT() cũng báo lỗi #REF!
a1 là giá trị logic xác định dạng tham chiếu bên trong ref_text.
a1 = TRUE (hoặc là 1, hoặc không nhập) là kiểu tham chiếu A1
a1 = FALSE (hoặc là 2) là kiểu tham chiếu R1C1
Ví dụ:
INDIRECT.jpg

Bạn để ý nhé.
Nếu B4 chỉ là số 10, thì INDIRECT() sẽ báo lỗi #REF!
Nhưng do tôi đã đặt tên cho B4 là George (tức là nội dung của A4) nên không bị lỗi.
 
Boyxin ơi, sao Indirect($A$4) = Indirect("George") = 10 được?
(coi trên hình á)
 
hihi, sau khi post bài xong, vô tình em download đc 1 file vd, từng vd cụ thể liên quan đến indirect, dễ hiểu vô cùng. Chân thành cám ơn các bạn nhé. Xin được chia sẽ file vd này để mọi người hiểu thêm về hàm indirect. Sorry vì không biết tác giả của file này nên không công bố đc. Mọi người download file đính kèm nhé.
 

File đính kèm

  • VD ve INDIRECT.zip
    14.3 KB · Đọc: 366
Thì giá trị của ô A4 không phải là George sao? Vậy =Indirect($A$4) = Indirect("George") Còn ô B4 có Name là "George" nên =Indirect("George") = 10 Đã nói là hàm Indirect lấy text, rồi mới lấy giá trị của text đó trên bảng tính làm giá trị của mình. Thân.
 
Lần chỉnh sửa cuối:
Boyxin ơi, sao Indirect($A$4) = Indirect("George") = 10 được?
(coi trên hình á)
Bạn muốn lấy giá trị 10 thì phải đặt name cho ô B4 là George mới lấy đc giá trị đó. Nếu không đặt bạn chỉ có thể dùng =indirect($B$4) mới cho ra 10 đc thôi.

Thì giá trị của ô A4 không phải là George sao?
Vậy =Indirect($A$4) = Indirect("George")
Còn ô B4 có Name là "George" nên =Indirect("George") = 10
Đã nói là hàm Indirect lấy text, rồi mới lấy giá trị của text đó trên bảng tính làm giá trị của mình.
Thân.
Bạn PIkachu ơi, đừng nóng quá, thật sự mình đã thắc mắc hàm này rất lâu rồi, do vô tình download đc 1 vd nên mới có thể tạm thông hiểu thôi. Hàm này đối với newbie như mình nói riêng và mọi người nói chung hơi khó hiểu mà, mới đọc không hiểu cũng là chuyện thường thôi. Cám ơn sự đóng góp của bạn nha
 
Chỉnh sửa lần cuối bởi điều hành viên:
=indirect($B$4) = indirect("10") = #REF! Bạn phải viết là =indirect("$B$4") = 10 Thân.
 
Lần chỉnh sửa cuối:
Tôi đã ghi rõ là:
Bạn để ý nhé.
Nếu B4 chỉ là số 10, thì INDIRECT() sẽ báo lỗi #REF!
Nhưng do tôi đã đặt tên cho B4 là George (tức là nội dung của A4) nên không bị lỗi.
Chẳng lẽ cái câu đó khó hiểu quá hay sao?
 
Thật sự câu đó không khó hiểu . Nhưng bạn hãy quay ngược thời gian, khi mới làm quen với Excel bạn có biết cách đặt name cho 1 ô or 1 vùng không? Nếu 1 người không biết đặt name thì không hiểu là chuyện bình thường mà. Còn bạn PTM0412 đã có số bài trên 1500 thì việc không hiểu thì mình cũng không biết giải thích. Mọi người hãy vui vẻ với nhau nhé. Đừng làm vấn đề nghiêm trọng hóa.
Have funs
 
Cảm ơn

hihi, sau khi post bài xong, vô tình em download đc 1 file vd, từng vd cụ thể liên quan đến indirect, dễ hiểu vô cùng. Chân thành cám ơn các bạn nhé. Xin được chia sẽ file vd này để mọi người hiểu thêm về hàm indirect. Sorry vì không biết tác giả của file này nên không công bố đc. Mọi người download file đính kèm nhé.
Chân thành cảm ơn bạn nhiều nhé. Mình đang nhức đầu với cái này nè!
 
Web KT
Back
Top Bottom