Tra cứu kết quả từ bảng dữ liệu dàn ngang

Liên hệ QC

Excel my love_1

Thành viên thường trực
Tham gia
12/11/19
Bài viết
321
Được thích
179
Em chào các anh, chị trên GPE ạ!
Em có 1 bảng dữ liệu bên sheet Data (em thấy nó hơi oái oăm là cứ dàn ngang ra, nên kiến thức ít ỏi của em về Match, index, hay vlookup không áp dụng được cho mẫu bảng này, nhưng mà em cũng không thay đổi được điều khó chịu này bởi vì em nhận dữ liệu từ người khác [ý em là em không thể thay đổi người khác để họ trình bày bảng dữ liệu theo ý mình ạ])
Mong các anh chị giúp em Em công thức cho các ô ở cột B của sheet Tracuu để lấy kết quả từ sheet Data sang sheet Tra cuu tương ứng với tên người sử dụng. Người sử dụng nào không có bên sheet Data thì kết quả tra cứu sẽ = 0
Em cảm ơn các anh chị nhé
(Chi tiết em trình bày trong file gửi kèm)
 

File đính kèm

  • Tra cuu.xlsb
    14.8 KB · Đọc: 28
Lần chỉnh sửa cuối:
Em chào các anh, chị trên GPE ạ!
Em có 1 bảng dữ liệu bên sheet Data (em thấy nó hơi oái oăm là cứ dàn ngang ra, nên kiến thức ít ỏi của em về Match, index, hay vlookup không áp dụng được cho mẫu bảng này, nhưng mà em cũng không thay đổi được điều khó chịu này bởi vì em nhận dữ liệu từ người khác [ý em là em không thể thay đổi người khác để họ trình bày bảng dữ liệu theo ý mình ạ])
Mong các anh chị giúp em Em công thức cho các ô ở cột B của sheet Tracuu để lấy kết quả từ sheet Data sang sheet Tra cuu tương ứng với tên người sử dụng. Người sử dụng nào không có bên sheet Data thì kết quả tra cứu sẽ = 0
Em cảm ơn các anh chị nhé
(Chi tiết em trình bày trong file gửi kèm)
Sheet 'Tra cuu', ô B2 gõ công thức sau và kéo xuống: =COUNTIF(Data!$A$1:$H$14,'Tra cuu'!A2)
 
Sheet 'Tra cuu', ô B2 gõ công thức sau và kéo xuống: =COUNTIF(Data!$A$1:$H$14,'Tra cuu'!A2)
Cảm ơn anh đã giúp đỡ. Anh ơi ! em kém quá, cho em hỏi là nếu dữ liệu bên Data mà không phải là kết quả của dạng đếm (Count) mà là 1 chỉ số nào đó thì em dùng hàm countif này nó không ra được kết quả mong muốn anh ạ.
Ví dụ như file em gửi này (vẫn dữ liệu ấy, nhưng kết quả là dạng khác ạ)
 

File đính kèm

  • Tra cuu 2.xlsb
    14.9 KB · Đọc: 18
Lần chỉnh sửa cuối:
Thử:
Mã:
=INDIRECT("Data!"&TEXT(AGGREGATE(14,6,(ROW(Data!$A$2:$H$14)*100+COLUMN(Data!$A$2:$H$14))/(A2=Data!$B$2:$H$14),1),"R0C00"),0)
Kết quả ra đúng rồi anh ạ! Nhưng mà công thức này thật sự đến già em cũng không thể hiểu được luôn. Lên google tìm; thì em cũng tạm hiểu cái đoạn đầu aggregate(14;6); đến cái đoạnn ROW(Data!$A$2:$H$14)*100+COLUMN(Data!$A$2:$H$14))/(A2=Data!$B$2:$H$14),1) thì không hiểu nó hoạt động ra sao mà ra được kết quả luôn anh à.
Dẫu sao có anh giúp đỡ là em vui rồi
Cảm ơn GPE-\\/.
 
Kết quả ra đúng rồi anh ạ! Nhưng mà công thức này thật sự đến già em cũng không thể hiểu được luôn. Lên google tìm; thì em cũng tạm hiểu cái đoạn đầu aggregate(14;6); đến cái đoạnn ROW(Data!$A$2:$H$14)*100+COLUMN(Data!$A$2:$H$14))/(A2=Data!$B$2:$H$14),1) thì không hiểu nó hoạt động ra sao mà ra được kết quả luôn anh à.
Dẫu sao có anh giúp đỡ là em vui rồi
Cảm ơn GPE-\\/.
Mình mượn công thức của Anh @dazkangel mình xin giải thích công thức cho bạn, theo sự hiểu biết của em, nếu trong khi em giải thích còn thiếu vấn đề gì nhờ Anh hỗ trợ thêm.
Đầu tiên giải thích công thức này
PHP:
ROW(Data!$A$2:$H$14)*100+COLUMN(Data!$A$2:$H$14))
Vế 1:
ROW(Data!$A$2:$H$14) tạo ra mảng như sau
{2;3;4;5;6;7;8;9;10;11;12;13;14}*100 sẽ tạo ra mảng sau {200;300;400;500;600;700;800;900;1000;1100;1200;1300;1400} (1)
COLUMN(Data!$A$2:$H$14) tạo ra mảng như sau: {1,2,3,4,5,6,7,8} (2)
Lấy (1)+(2) sẽ ra kết quả như sau: ta cho nó là (3)
{201,202,203,204,205,206,207,208;301,302,303,304,305,306,307,308;401,402,403,404,405,406,407,408;501,502,503,504,505,506,507,508;601,602,603,604,605,606,607,608;701,702,703,704,705,706,707,708;801,802,803,804,805,806,807,808;901,902,903,904,905,906,907,908;1001,1002,1003,1004,1005,1006,1007,1008;1100,1101,1102,1103,1104,1105,1006,1107,1108;1201,1202,1203,1204,1205,1206,1207,1208;1301,1302,1303,1304,1305,1306,1307,1308;1401,1402,1403,1404,1405,1406,1407,1408}
Vế 2:
A2=Data!$B$2:$H$14
So sánh HOANGHA trong vùng B2:H14 ở sheet DATA.
Nếu kết quả trả về đúng là TRUE
Nếu kết quả trả về sai là FALSE.
TRUE tương ứng với 1, FALSE tương ứng với 0.
kết quả sẽ ra mảng như sau;
{1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0;1,0,0,0,0,0,0}. (4)
Lấy (3)/(4) ta được mảng như sau ta cho nó là (5)
{201,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;301,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;401,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;501,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;601,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;701,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;801,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;901,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;1001,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;1101,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;1201,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;1301,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA;1401,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#NA}
Hàm
AGGREGATE(function_num, options, ref1, [ref2], …)
Trong công thức số 14 chính là hàm LARGE.
Số 6 chính là bỏ qua các giá trị lỗi.
Bạn xem ý nghĩa công thức tại đây
AGGREGATE(14,6,(ROW(Data!$A$2:$H$14)*100+COLUMN(Data!$A$2:$H$14))/(A2=Data!$B$2:$H$14),1)
Số 1 ở phía sau chính là vị trí lớn thứ nhất.
theo công thức dưới đây.
PHP:
LARGE(array,k)
Theo (5) chính là số 1401.
PHP:
TEXT(AGGREGATE(14,6,(ROW(Data!$A$2:$H$14)*100+COLUMN(Data!$A$2:$H$14))/(A2=Data!$B$2:$H$14),1),"R0C00
INDIRECT(ref_text, [a1]

PHP:
INDIRECT("Data!"&TEXT(AGGREGATE(14,6,(ROW(Data!$A$2:$H$14)*100+COLUMN(Data!$A$2:$H$14))/(A2=Data!$B$2:$H$14),1),"R0C00"),[B]0[/B])
Số 0 chính là kiểu tham chiếu R1C1
Ta ráp vào công thức ta được như sau: "R14C01"
Sử dụng Công thức Indirect("R14C01") sẽ trả kết quả là dòng 14 cột 1(chính là cột A) sẽ cho kết quả bằng 12.
 
Lần chỉnh sửa cuối:
Mình mượn công thức của Anh @dazkangel mình xin giải thích công thức cho bạn, theo sự hiểu biết của em, nếu trong khi em giải thích còn thiếu vấn đề gì nhờ Anh hỗ trợ thêm.
cảm ơn bạn Huonglien1901 đã giải thích công thức của anh dazkangel. Nhờ có bạn mình biết được cách vận hành của công thức ở tình huống này r
Các kiến thức bạn đưa ra (ví dụ kiến thức tạo mảng), đều mới mẻ đối với mình. Ước gì đến 1 ngày đẹp trời mình có thể ứng dụng được những kiến thức này vào các tình huống khác.
 
Em chào các anh, chị trên GPE ạ!
Em có 1 bảng dữ liệu bên sheet Data (em thấy nó hơi oái oăm là cứ dàn ngang ra, nên kiến thức ít ỏi của em về Match, index, hay vlookup không áp dụng được cho mẫu bảng này, nhưng mà em cũng không thay đổi được điều khó chịu này bởi vì em nhận dữ liệu từ người khác [ý em là em không
Chào bạn! Với mẫu bảng của bạn , ngoài cách sử dụng công thức tạo mảng như của bạn dazkangle ở trên; bạn nghiên cứu thêm hàm lookup hàm Offset. Mình gửi bạn thêm 1 cách sử dụng hàm offset kết hợp match, lookup, addess, indirect cho mẫu bảng của bạn. Chúc bạn ngày vui
 

File đính kèm

  • Tra cuu 2.xlsb
    15.6 KB · Đọc: 10
Lần chỉnh sửa cuối:
Em chào các anh, chị trên GPE ạ!
Em có 1 bảng dữ liệu bên sheet Data (em thấy nó hơi oái oăm là cứ dàn ngang ra, nên kiến thức ít ỏi của em về Match, index, hay vlookup không áp dụng được cho mẫu bảng này, nhưng mà em cũng không thay đổi được điều khó chịu này bởi vì em nhận dữ liệu từ người khác [ý em là em không thể thay đổi người khác để họ trình bày bảng dữ liệu theo ý mình ạ])
Mong các anh chị giúp em Em công thức cho các ô ở cột B của sheet Tracuu để lấy kết quả từ sheet Data sang sheet Tra cuu tương ứng với tên người sử dụng. Người sử dụng nào không có bên sheet Data thì kết quả tra cứu sẽ = 0
Em cảm ơn các anh chị nhé
(Chi tiết em trình bày trong file gửi kèm)
Thêm cách khác
Mã:
B2 =IFERROR(OFFSET(Data!$A$1,COUNTIF(Data!$A$2:$H$14,A2),MATCH(A2,Data!$B$2:$H$2,0)-1),0)
 
Thêm cách khác
Mã:
B2 =IFERROR(OFFSET(Data!$A$1,COUNTIF(Data!$A$2:$H$14,A2),MATCH(A2,Data!$B$2:$H$2,0)-1),0)
Chào bạn! Với mẫu bảng của bạn , ngoài cách sử dụng công thức tạo mảng như của bạn dazangle ở trên; bạn nghiên cứu thêm hàm lookup hàm Offset. Mình gửi bạn thêm 1 cách sử dụng hàm offset kết hợp match, lookup, addess, indirect cho mẫu bảng của bạn. Chúc bạn ngày vui
Dựa vào gợi ý hàm lookup 1 con đường khác :D
Mã:
=IFERROR(LOOKUP("zz",OFFSET(Data!A$2:A$14,,MATCH(A2,Data!B$2:H$2,0)-1)),"")
 
Em chào các anh, chị trên GPE ạ!
Em có 1 bảng dữ liệu bên sheet Data (em thấy nó hơi oái oăm là cứ dàn ngang ra, nên kiến thức ít ỏi của em về Match, index, hay vlookup không áp dụng được cho mẫu bảng này, nhưng mà em cũng không thay đổi được điều khó chịu này bởi vì em nhận dữ liệu từ người khác [ý em là em không thể thay đổi người khác để họ trình bày bảng dữ liệu theo ý mình ạ])
Mong các anh chị giúp em Em công thức cho các ô ở cột B của sheet Tracuu để lấy kết quả từ sheet Data sang sheet Tra cuu tương ứng với tên người sử dụng. Người sử dụng nào không có bên sheet Data thì kết quả tra cứu sẽ = 0
Em cảm ơn các anh chị nhé
(Chi tiết em trình bày trong file gửi kèm)
Góp ý cho bạn:
1/ Bạn theo dõi không hợp lý dẫn đến khó khăn trong việc tra cứu vào tổng hợp dữ liệu.
2/ Tôi thiết kế lại để nhập liệu theo chiều dọc rồi dùng PivotTable thì quá dễ dàng.
 

File đính kèm

  • Tra cuu.xlsx
    17.5 KB · Đọc: 5
Web KT
Back
Top Bottom