Hỏi hàm tham chiếu ra kết quả là mảng

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

Maloahn

Thành viên mới
Tham gia
5/11/10
Bài viết
31
Được thích
1
Mình có đề bài về việc tính giá một số mặt hàng (Dùng hàm tham chiếu). Mong các bạn giúp đỡ cho bài toán này với.
 

File đính kèm

Mình có đề bài về việc tính giá một số mặt hàng (Dùng hàm tham chiếu). Mong các bạn giúp đỡ cho bài toán này với.
BƯỚC 1 TẠO 1 NAMES TÊN LÀ BANG1
PHP:
=VLOOKUP('Bang Tong hop 1'!$E4,'Bang tham chieu 1'!$B$3:$K$17,MATCH('Bang Tong hop 1'!$F$3:$N$3,'Bang tham chieu 1'!$C$3:$K$3,0)+1,0)
SAU ĐÓ DẶT CÔNG THỨC NÀY CHO O4
PHP:
=SUMPRODUCT(BANG1,$F4:$N4)
 
Sao minh không ra kết quả được bạn nhỉ???
 
BƯỚC 1 TẠO 1 NAMES TÊN LÀ BANG1
PHP:
=VLOOKUP('Bang Tong hop 1'!$E4,'Bang tham chieu 1'!$B$3:$K$17,MATCH('Bang Tong hop 1'!$F$3:$N$3,'Bang tham chieu 1'!$C$3:$K$3,0)+1,0)
SAU ĐÓ DẶT CÔNG THỨC NÀY CHO O4
PHP:
=SUMPRODUCT(BANG1,$F4:$N4)

Sao mà ghét tên sheet dài và có khoảng trắng thế!
Có thể đặt Name như sau:

Banggia =OFFSET(Bang1!$C$3:$K$3;MATCH(THop!$E4;Bang1!$B$4:$B$17;0);0)

hoặc

Banggia =INDEX(Bang1!$C$4:$K$17;MATCH(THop!$E4;Bang1!$B$4:$B$17;0);0)

Rồi dùng Sumproduct như Thương:

O4 = Sumproduct(Banggia;F4:N4)

maloahn đã viết:
Sao minh không ra kết quả được bạn nhỉ???

Khi đặt name, phải đứng tại dòng 4 sheet Tonghop, vì name động nên nó phải chạy theo dòng.
 

File đính kèm

Sao mà ghét tên sheet dài và có khoảng trắng thế!
Có thể đặt Name như sau:

Banggia =OFFSET(Bang1!$C$3:$K$3;MATCH(THop!$E4;Bang1!$B$4:$B$17;0);0)

hoặc

Banggia =INDEX(Bang1!$C$4:$K$17;MATCH(THop!$E4;Bang1!$B$4:$B$17;0);0)

Rồi dùng Sumproduct như Thương:

O4 = Sumproduct(Banggia;F4:N4)



Khi đặt name, phải đứng tại dòng 4 sheet Tonghop, vì name động nên nó phải chạy theo dòng.

Nếu dữ liệu của các cột hoán đổi vị trí cho nhau , hoặc số cột giữa 2 bảng không bằng nhau thì làm sao ta ?
 
Nếu dữ liệu của các cột hoán đổi vị trí cho nhau , hoặc số cột giữa 2 bảng không bằng nhau thì làm sao ta ?

Áp dụng vừa đủ trong trường hợp bảng tính là được rồi Thương,
Cái quan trọng nhất là nhập liệu & bố cục bảng tính, đặt tên/tiêu đề bảng sao cho hợp lý để hạn chế các công thức dài dòng.
Cứ thích dùng từ "Nếu" thì có nhiều cái "Nếu" lắm !
 
áp dụng vừa đủ trong trường hợp bảng tính là được rồi thương,
cái quan trọng nhất là nhập liệu & bố cục bảng tính, đặt tên/tiêu đề bảng sao cho hợp lý để hạn chế các công thức dài dòng.
Cứ thích dùng từ "nếu" thì có nhiều cái "nếu" lắm !
đúng LÀ cách bố trí bảng tính là rất quan trọng
nhưng vẫn có trường hợp dữ liệu từ 2 người làm ra chứ
ví dụ trong file đại ca xem giúp
 

File đính kèm

đúng LÀ cách bố trí bảng tính là rất quan trọng
nhưng vẫn có trường hợp dữ liệu từ 2 người làm ra chứ
ví dụ trong file đại ca xem giúp

Lại là "Nhưng" & "Nếu"
- Nhưng có 2 người làm trở lên thì có người nhập "Hải Dương, Hải Phòng", có người nhập "HảiDương, HảiPhòng", có người nhập "TP Hải Phòng"
- Nhưng có 2 người làm trở lên thì có người lại chơi tiêu đề "VV4C", có người chơi "VV 4C" hay có người gõ "Loại 200ml" có người gõ "200ml"
- Nếu có người nhập sai số, nếu gõ sai địa chỉ,...
... nếu ....nếu ....nhưng ... nhưng....
...v.v...
=> Lúc ấy Thương sẽ làm công thức gì ?

Làm bảng tính hay bảng tổng hợp cỏn con này mà không nhất quán & quy ước rõ ràng được thì ...THUA !
 
Nói như Datbutmuc cũng có lý. Tạo 1 dữ liệu và sử dụng dữ liệu đó tạo ra những báo cáo khác nhau đòi hỏi phải tuân thủ 1 số quy tắc. Không theo quy tắc tức là tự mình làm khó mình (và làm khó cho anh em GPE).

Cụ thể trường hợp topic này, xin có vài lời bàn:

1. Dù là 1 người hoặc 2 người tạo ra cái file này đi nữa, và cả 2 không biết gì về CSDL, thì thói quen khi tạo sheet Tonghop sẽ là copy tiêu đề các cột tên mặt hàng paste qua. Trường hợp đảo vị trí cột là rất hiếm khi xảy ra.
2. Khi chèn 1 cột mặt hàng mới vào sheet Tonghop, nghĩa là có thêm mặt hàng được bán ra, thì phải có giá mới bán được chứ? Vậy thì phải chèn thêm 1 cột giá vào sheet Bangthamchieu, cái này quá cơ bản nên hiếm khi sai.

Vấn đề "nếu và nhưng" phải đặt ra như vầy mới đúng:
1. Giả sử có 10 mặt hàng, 10 cột giá, và trong tháng chỉ phát sinh 4 mặt hàng thôi, tôi không muốn tạo và in 6 cột trống.
2. Giả sử tôi giải quyết được chuyện 1, thì trong tháng tôi sẽ làm tuần tự: mặt hàng nào phát sinh trước, tôi ghi tên mặt hàng vào cột đầu, sau đó đến cột kế tiếp.

Vậy, có giải quyết được không? Tôi nói được. Thậm chí 1 trong 3 name trên kia cũng đã xài được rồi: Đó là Name của LeDuyThuong, mà chính Thương không ngờ tới. Cái name tạo ra 1 mảng, mảng này đáp ứng 2 chuyện:

- Thứ tự cột mặt hàng không giống bên sheet tham chiếu
- Số cột (số mặt hàng) ít hơn sheet tham chiếu

Còn tại sao cái Name Vlookup dài ngoằng ai cũng chê, mà làm được việc này thì .... giải thích sau (đi smoke cái đã). Mọi người cứ thử đi nha.
 
Vậy, có giải quyết được không? Tôi nói được. Thậm chí 1 trong 3 name trên kia cũng đã xài được rồi: Đó là Name của LeDuyThuong, mà chính Thương không ngờ tới. Cái name tạo ra 1 mảng, mảng này đáp ứng 2 chuyện:

- Thứ tự cột mặt hàng không giống bên sheet tham chiếu
- Số cột (số mặt hàng) ít hơn sheet tham chiếu

Còn tại sao cái Name Vlookup dài ngoằng ai cũng chê, mà làm được việc này thì .... giải thích sau (đi smoke cái đã). Mọi người cứ thử đi nha.
cái name Vlookup dài ngoằng kia là 1 mảng không có nằm trên sheet. mà nó được tạo ra dựa trên những kết quả mà vlookup tìm được.kết quả nào được vlookup tìm thấy trước thì ghép vào mảng trước.tìm thấy sau thì gép vào mảng sau (gọi là mảng ảo).
do vậy 2 cái này
- Thứ tự cột mặt hàng không giống bên sheet tham chiếu
- Số cột (số mặt hàng) ít hơn sheet tham chiếu

vẫn cho kết quả đúng

không biết có trúng không?
 
Chỉnh sửa lần cuối bởi điều hành viên:
Đi smoke 1 cái, rồi về nhà bị hư net, không kịp giải thích thì tên đệ tử "chuyên cãi" đã giải thích rồi. Coi như có thuộc bài. Nhưng văn viết dở tệ và thiếu 1 ý:

kết quả nào được vlookup tìm thấy trước thì ghép vào mảng trước.tìm thấy sau thì gép vào mảng sau (gọi là mảng ảo).
Ý này chỉ mới giải thích chuyện thứ tự cột không giống, chưa giải thích chuyện số cột ít hơn. Để giải thích chuyện số cột có thể ít hơn thì phải thêm 1 câu (dù là dễ òm):

Kết quả nào được vlookup tìm thấy trước thì ghép vào mảng trước.tìm thấy sau thì ghép vào mảng sau (LDT)
Vì đã giới hạn 1 mảng (A) để cho Vlookup đi dò tìm, nên mảng (A) có bao nhiêu cột, kết quả Vlookup từ bảng tham chiếu sẽ chỉ có bấy nhiêu cột.

Giải thích thêm cho dễ hiểu:

Trong Name Vlookup, mảng (A) được tạo từ hàm Match sử dụng kiểu mảng nên cho kết quả mảng là thứ tự các mặt hàng đang dò tìm trong bảng tham chiếu gốc.

Thí dụ các mặt hàng cần tính chỉ từ cột F đến cột J (5 mặt hàng):

MATCH(THop!$F$3:$J$3;BangTC!$C$3:$H$3;0)

Nếu bình thường 5 mặt hàng này có thứ tự giống sheet tham chiếu và bắt đầu bằng mặt hàng thứ nhất, thì kết quả hàm Match là 1 mảng {1; 2; 3; 4; 5}
Nếu thứ tự mặt hàng không giống thì Match sẽ cho thứ tự đó, giả sử {2; 3; 1; 5; 4}
Và cũng có thể là không phải 5 mặt hàng đầu tiên trong bảng tham chiếu: {
6; 9; 2; 3; 10}

Vậy, Vlookup đi dò tìm 5 phần tử, sẽ ra 1 mảng (đơn giá) 5 phần tử, và thứ tự theo đúng thứ tự của mảng (A).



 
Lần chỉnh sửa cuối:
Chào các bác! Đứa bạn em gửi cho em 1 bảng tính EXCEL - trong đó nó có xử dụng hàm SumProduct để tính tổng thành tiền. Tuy nhiên, khi xem hàm này em ko hiểu thông số "Bang" c ý nghĩa gì? Các bác có thể giải thích giúp em được không???
 

File đính kèm

Chào các bác! Đứa bạn em gửi cho em 1 bảng tính EXCEL - trong đó nó có xử dụng hàm SumProduct để tính tổng thành tiền. Tuy nhiên, khi xem hàm này em ko hiểu thông số "Bang" c ý nghĩa gì? Các bác có thể giải thích giúp em được không???
Chính là file từ topic này mà ra đó.
 
Web KT

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

Back
Top Bottom