Nhờ sửa giúp công thức mảng trong bài tập!

  • Thread starter Thread starter be nam
  • Ngày gửi Ngày gửi
Liên hệ QC

be nam

Thành viên chính thức
Tham gia
3/4/10
Bài viết
90
Được thích
3
Nhờ các anh chị và các bạn sửa giúp công thức mảng trong phần Đơn giá (Bài tập đính kèm). Đơn giá có 2 phần nhập, xuất. Công thức mảng của mình chỉ tính được phần Nhập. Mong các anh chị giúp đỡ.
 

File đính kèm

Nhờ các anh chị và các bạn sửa giúp công thức mảng trong phần Đơn giá (Bài tập đính kèm). Đơn giá có 2 phần nhập, xuất. Công thức mảng của mình chỉ tính được phần Nhập. Mong các anh chị giúp đỡ.
Tại sao phải dùng mảng? Bình thường vẫn tính được mà:
Mã:
=VLOOKUP(LEFT(A4,3),$A$18:$E$22,IF(F4="X",5,4),0)
Trong VLOOKUP chỉ lấy được bước dò đầu tiên thôi.
 
Lần chỉnh sửa cuối:
Nhờ các anh chị và các bạn sửa giúp công thức mảng trong phần Đơn giá (Bài tập đính kèm). Đơn giá có 2 phần nhập, xuất. Công thức mảng của mình chỉ tính được phần Nhập. Mong các anh chị giúp đỡ.

Sao mọi người có những công thức kỳ cục vậy?
VLOOKUP bình thường mà tự dưng lại truyền mảng gì vậy?

Công thức cho G4

Mã:
=VLOOKUP(LEFT($A4;3);$A$18:$E$22;IF($F4="X";5;4);0)

Kết thúc bình thường, kéo xuống dưới.
 
Sao mọi người có những công thức kỳ cục vậy?
VLOOKUP bình thường mà tự dưng lại truyền mảng gì vậy?

Công thức cho G4

Mã:
=VLOOKUP(LEFT($A4;3);$A$18:$E$22;IF($F4="X";5;4);0)

Kết thúc bình thường, kéo xuống dưới.
Cám ơn anh, nhưng em cứ thắc mắc không hiểu ct mảng của em sai chỗ nào nữa, mò hoài không ra anh ạ.
 
Cám ơn anh, nhưng em cứ thắc mắc không hiểu ct mảng của em sai chỗ nào nữa, mò hoài không ra anh ạ.

Tôi không dám chắc nhưng tôi nghĩ là khi bạn dùng VLLOKUP như thế, tức khi lookup_value là một mảng thì tất cả mọi VLOOKUP thành phần đều được tính với một col_index_num như nhau. Tức với tư cách là col_index_num bạn có thể truyền 1 giá trị cụ thể, một cell. Còn nếu với tư cách col_index_num bạn truyền mảng như thế thì phần tử đầu tiên của mảng ấy được chọn ra làm col_index_num ... cho tất cả các VLOOKUP thành phần.

Tức nếu F4 = "X" thì các VLOOKUP thành phần là
=VLOOKUP(LEFT(A4;3);A18:E22;5;0)
=VLOOKUP(LEFT(A5;3);A18:E22;5;0)
...
=VLOOKUP(LEFT(A13;3);A18:E22;5;0)

Tức nếu F4 = "N" thì các VLOOKUP thành phần là
=VLOOKUP(LEFT(A4;3);A18:E22;4;0)
=VLOOKUP(LEFT(A5;3);A18:E22;4;0)
...
=VLOOKUP(LEFT(A13;3);A18:E22;4;0)
 
Vâng, em cũng biết vậy. Nhưng anh có thể giải thích cho em sai tại chỗ nào ko ạ?

VLOOKUP không chơi được với 2 mảng cùng lúc đâu. Nếu bắt buộc dùng mảng thì phải INDEX + MATCH mới xong
Mã:
=INDEX(A18:E22,MATCH(LEFT(A4:A14,3),A18:A22,0),MATCH(F4:F13,A17:E17,0)))
hoặc:
Mã:
=INDEX(A18:E22,MATCH(LEFT(A4:A14,3),A18:A22,0),IF(F4:F13="N",4,5))
 
Em hiểu rồi ạ. Cám ơn các anh chị và các bạn.
 
Web KT

Bài viết mới nhất

Back
Top Bottom