So sánh giá trị rồi đưa ra kết quả

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

tbt79

Thành viên mới
Tham gia
7/7/10
Bài viết
12
Được thích
10
Xin chỉ giúp cách làm -+*/
 

File đính kèm


Công thức tại ô C12 :
đặt 2 name :

dong
PHP:
=IF(ISNA(MATCH(Sheet1!$I$11,Sheet1!$C$4:$C$8,0)),0,MATCH(Sheet1!$I$11,Sheet1!$C$4:$C$8,0))
cot
PHP:
=IF(dong=0,0,MATCH(Sheet1!$C$11,OFFSET(Sheet1!$D$3:$M$3,dong,0),0))
C12
PHP:
=IF(cot=0,"",OFFSET($C$3,0,cot))
 

File đính kèm

- Nếu tìm không thấy 9 thì sao?
- Nếu tìm không thấy 6, hoặc 1, hoặc 10 thì sao?

Công thức sau dùng cho trường hợp luôn luôn tìm thấy:

=INDEX($D$3:$M$3;1;MATCH(F11;OFFSET($D$3:$M$3;MATCH($I$11;$C$4:$C$8;0);0);0))
 
Lần chỉnh sửa cuối:
- Nếu tìm không thấy 9 thì sao?
- Nếu tìm không thấy 6, hoặc 1, hoặc 10 thì sao?
Công thức sau dùng cho trường hợp luôn luôn tìm thấy:
=INDEX($D$3:$M$3;1;MATCH(F11;OFFSET($D$3:$M$3;MATCH($I$11;$C$4:$C$8;0);0);0))
em thử công thức như Bác hướng dẫn thì thấy báo lỗi . Em add cái hình báo lỗi lên mà ko thấy được. Bác thử kiểm lại cho em nhé.

Bạn nói rằng:
C12 = "H" và F12 = "C" thì đúng rồi, nhưng I12 tại sao lại = "F" ---> Vui lòng giải thích chổ này!
EM nhầm đấy bác ơi... I12= A. Cảm ơn bác nhiều nha. em tìm bác từ sáng...

Công thức tại ô C12 :
đặt 2 name :
dong
PHP:
=IF(ISNA(MATCH(Sheet1!$I$11,Sheet1!$C$4:$C$8,0)),0,MATCH(Sheet1!$I$11,Sheet1!$C$4:$C$8,0))
cot
PHP:
=IF(dong=0,0,MATCH(Sheet1!$C$11,OFFSET(Sheet1!$D$3:$M$3,dong,0),0))
C12
PHP:
=IF(cot=0,"",OFFSET($C$3,0,cot))

nhờ bạn hướng dẫn kỹ cho mình ở cách thứ 3; cot=0 (ý nghĩa là thế nào) ; "" (ý nghĩa là thế nào); offset c3,0,cot ý nghĩa là thế nào... Khi mình bỏ giá trị tuyệt đối đi để làm cho vị trí khác thì không được; nếu thay các con số của mình ví dụ số 6 thay bằng chữ thì công thức trên có phải thay đổi không..... Thanks bạn nhiều

Bạn dùng cái này tại C12: =INDEX($D$3:$M$3,MATCH($C$11,OFFSET($D$4,INT($I$11/2),,,10),0))
Xem thêm file
Nhờ bạn chỉ rõ hơn giúp mình với các ô khác; mình thử bỏ giá trị tuyệt đối đi để áp dụng cho các vị trí khác thì không được; tạo nút click chọn như bạn rất hợp với ý mình bạn hướng dẫn cách tạo nút như vậy cho mình luôn nhé... cảm ơn bạn nhiều.

em up lại mong có sự tổng quát hơn về công thức. Các bác chỉ bảo cho em nhé, -+*/
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
em thử công thức như Bác hướng dẫn thì thấy báo lỗi . Em add cái hình báo lỗi lên mà ko thấy được. Bác thử kiểm lại cho em nhé
Có thay dấu ";" thàn hdấu "," không?

Trong file kèm theo bài 7, chẳng biết vùng dữ liệu bên dưới lấy ô nào làm mốc dò tìm dòng nữa. (File cũ bài #1, ô dùng làm mốc là ô I11)

Vậy thì dùng 1 ô khác bên ngoài vùng, (ô B35), làm ô chuẩn để tìm dòng. dòng 35 là các ô chuẩn để tìm cột. Dòng 36 là kết quả.

Công thức y như cũ bài #4. kể cả dữ liệu cũ và mới.
 

File đính kèm

Lần chỉnh sửa cuối:
Có thay dấu ";" thàn hdấu "," không?

Trong file kèm theo bài 7, chẳng biết vùng dữ liệu bên dưới lấy ô nào làm mốc dò tìm dòng nữa. (File cũ bài #1, ô dùng làm mốc là ô I11)

Vậy thì dùng 1 ô khác bên ngoài vùng, (ô B35), làm ô chuẩn để tìm dòng. dòng 35 là các ô chuẩn để tìm cột. Dòng 36 là kết quả.

Công thức y như cũ bài #4. kể cả dữ liệu cũ và mới.

Nhờ bạn xem giúp với công thức mà bạn hướng dẫn khi mình đổi cột thành hàng, hàng thành cột thì mình mắc lỗi ở đâu....
Theo file đính kèm mình có hỏi thêm một số vấn đề khác nữa bạn hướng dẫn cho mình luôn nhé . Cảm ơn bạn nhiều. Mong học hỏi được nhiều điều từ bạn....
 

File đính kèm

Nhờ bạn xem giúp với công thức mà bạn hướng dẫn khi mình đổi cột thành hàng, hàng thành cột thì mình mắc lỗi ở đâu....
Theo file đính kèm mình có hỏi thêm một số vấn đề khác nữa bạn hướng dẫn cho mình luôn nhé . Cảm ơn bạn nhiều. Mong học hỏi được nhiều điều từ bạn....

Tại ô F77 dùng công thức sau rồi fill sang phải:
PHP:
=INDEX($E$63:$E$74,MATCH($C$76,OFFSET($E$63,,MATCH(F$76,$F$62:$O$62,0),13),0))

Hoặc gọn hơn:
PHP:
=INDEX($E$63:$E$74,MATCH($C$76,OFFSET($E$63,,F$76,13),0))
 
Lần chỉnh sửa cuối:
Tại ô F77 dùng công thức sau rồi fill sang phải:
PHP:
=INDEX($E$63:$E$74,MATCH($C$76,OFFSET($E$63,,MATCH(F$76,$F$62:$O$62,0),13),0))

Hoặc gọn hơn:
PHP:
=INDEX($E$63:$E$74,MATCH($C$76,OFFSET($E$63,,F$76,13),0))

Em làm theo hướng dẫn của bác thì ok rồi nhưng thực sự em chưa hiểu ý nghĩa; lối suy nghĩ thế nào để làm được như thế; theo cái file mà em đính kèm bác hướng dẫn cho em từ đầu đến cuối được không; bác mới giúp em giải quyết được 1 ý trong đó; EM đang thắc mắc là sự hiểu công thức của em như vậy mà sao chưa làm được cho trường hợp khác; nhờ bác hướng dẫn cho em lối suy luận phải thế nào; em hơi kém tý nhưng em chăm lắm, em sẽ cố gắng... cảm ơn bác nhiều.
 
bạn có thể chỉ mình cách tạo code tại ô c11 & i11 được không ?
 
Nhờ bạn xem giúp với công thức mà bạn hướng dẫn khi mình đổi cột thành hàng, hàng thành cột thì mình mắc lỗi ở đâu....
Theo file đính kèm mình có hỏi thêm một số vấn đề khác nữa bạn hướng dẫn cho mình luôn nhé . Cảm ơn bạn nhiều. Mong học hỏi được nhiều điều từ bạn....

Công thức ngắn gọn thì như datbutmuc (công thức 1), công thức 2 ngắn hơn nữa nhưng không tổng quát.

Công thức 1 của datbutmuc nếu đầy đủ thì là

=INDEX($E$63:$E$74;MATCH($C$76;OFFSET($E$63:$E$74;0;MATCH(F76;$F$62:$O$62;0));0);1)

So với công thức dò tìm lần trước, muốn đổi dò tìm ngang thành dọc, thì những hàm có tham chiếu dòng & cột như Index, Offset, cũng phải đổi theo.

Thí dụ:
- Hàm index lần trước, dò trong bảng 1 dòng & nhiều cột, thì Index là: Index(bảng 1 dòng, 1, số n)
- Hàm Index lần này, dò trong bảng nhiều dòng & 1 cột, thì Index là: Index(bảng 1 cột, số n, 1)

(số n tìm bằng Match)

Thí dụ 2:
- Hàm Offset lần trước, dịch chuyển vùng ABC xuống n dòng, sang phải 0 cột thì là: Offset(ABC, n, 0)
- Hàm Offset lần này, dịch chuyển vùng XYZ xuống 0 dòng, sang phải n cột, thì là: Offaet(XYZ, 0, n)

(n cũng tìm bằng Match)


2. Các câu hỏi còn lại trong file:
- Không nên merge cell
- Yêu cầu chưa rõ ràng
 
Công thức ngắn gọn thì như datbutmuc (công thức 1), công thức 2 ngắn hơn nữa nhưng không tổng quát.

Công thức 1 của datbutmuc nếu đầy đủ thì là

=INDEX($E$63:$E$74;MATCH($C$76;OFFSET($E$63:$E$74;0;MATCH(F76;$F$62:$O$62;0));0);1)

So với công thức dò tìm lần trước, muốn đổi dò tìm ngang thành dọc, thì những hàm có tham chiếu dòng & cột như Index, Offset, cũng phải đổi theo.

Thí dụ:
- Hàm index lần trước, dò trong bảng 1 dòng & nhiều cột, thì Index là: Index(bảng 1 dòng, 1, số n)
- Hàm Index lần này, dò trong bảng nhiều dòng & 1 cột, thì Index là: Index(bảng 1 cột, số n, 1)

(số n tìm bằng Match)

Thí dụ 2:
- Hàm Offset lần trước, dịch chuyển vùng ABC xuống n dòng, sang phải 0 cột thì là: Offset(ABC, n, 0)
- Hàm Offset lần này, dịch chuyển vùng XYZ xuống 0 dòng, sang phải n cột, thì là: Offaet(XYZ, 0, n)

(n cũng tìm bằng Match)


2. Các câu hỏi còn lại trong file:
- Không nên merge cell
- Yêu cầu chưa rõ ràng

Giờ với những bài tập tương tự thì theo những gì bác hướng dẫn em em làm được rồi; Em thử đổi bài khác đi một chút thì lại ko được
THeo file đính kèm bác có thể hướng dẫn em kỹ hơn về sự kết hợp giữa Index, match và offset không ạ... Đây là những vấn đề ở điều 2 bác phê em làm rõ lại yêu cầu... Em chân thành cảm ơn bác...
 

File đính kèm

Lần chỉnh sửa cuối:
bạn có thể chỉ mình cách tạo code tại ô c11 & i11 được không ?

Có phải bạn muốn tạo cái nút bấm xuống không??? Nếu đúng thì bạn làm thế này nhé : Tại vị trí ô C11 hay bất kỳ ô nào bạn để hộp sáng tại ô đó:
Nhìn lên Menubar chọn Data\Validation..
Nó sẽ hiện ra 1 cái bảng Tại ô Allow chọn List rồi bạn lựa chọn danh sách bạn muốn cho vào cái nút đó rồi ok là xong.
 
Giờ với những bài tập tương tự thì theo những gì bác hướng dẫn em em làm được rồi; Em thử đổi bài khác đi một chút thì lại ko được
THeo file đính kèm bác có thể hướng dẫn em kỹ hơn về sự kết hợp giữa Index, match và offset không ạ... Đây là những vấn đề ở điều 2 bác phê em làm rõ lại yêu cầu... Em chân thành cảm ơn bác...

Tại C6 dùng thử:
PHP:
=IF(AND(COUNTIF($B$3:$AC$3,$C$5)<3,COLUMN($C$5)<>COLUMN(C$5)),,OFFSET($B$4,,MATCH($C$5,$B$3:$AC$3,0)-COLUMN($C$5)+COLUMN(C$5)))
Xem thêm file
 

File đính kèm

Sẵn dịp làm luôn:
- Có thể 1, 2, hoặc 3 cột có cùng ký tự dò tìm.
- Mở rộng ra bảng nhiều dòng (cái này dự phòng, biết trước sẽ bị hỏi thêm)

Chỉ dùng Offset(ô, dòng, cột)
- nếu chỉ 1 dòng, thì cố định chỉ số dòng là 1, chỉ số cột thì dò tìm bằng match.
- nếu nhiều dòng, tham số dòng cũng dò bằng match.
 

File đính kèm

Tại ô F77 dùng công thức sau rồi fill sang phải:
PHP:
=INDEX($E$63:$E$74,MATCH($C$76,OFFSET($E$63,,MATCH(F$76,$F$62:$O$62,0),13),0))

Hoặc gọn hơn:
PHP:
=INDEX($E$63:$E$74,MATCH($C$76,OFFSET($E$63,,F$76,13),0))

Cho em hỏi thêm về công thức này.
 

File đính kèm

Sẵn dịp làm luôn:
- Có thể 1, 2, hoặc 3 cột có cùng ký tự dò tìm.
- Mở rộng ra bảng nhiều dòng (cái này dự phòng, biết trước sẽ bị hỏi thêm)

Chỉ dùng Offset(ô, dòng, cột)
- nếu chỉ 1 dòng, thì cố định chỉ số dòng là 1, chỉ số cột thì dò tìm bằng match.
- nếu nhiều dòng, tham số dòng cũng dò bằng match.


Mấy đêm ngồi nghiên cứu công thức bác hướng dẫn em giờ em mới thấm . Cảm ơn bác PTM nhiều nhiều... Nếu bác rảnh bác ngó qua cho em cái file "cách làm đẹp" ở #17 với nhé. Cảm ơn bác lần nữa.
 
Công thức đúng là
INDEX($C$4:$E$4;1;MATCH(H$3;OFFSET($C$4:$E$4;MATCH($G$3;$B$5:$B$14;0);0);0))

hoặc

OFFSET($C$4;0;MATCH(H$3;OFFSET($C$4:$E$4;MATCH($G$3;$B$5:$B$14;0);0);0)-1)

Sau đó bẫy lỗi IsError, chứ có gì đâu?
 

File đính kèm

Web KT

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

Đếm ngược thời gian

000
Ngày
00
Giờ
00
phút
00
giây
Back
Top Bottom