Tìm mã hiệu tương ứng từ các tính chất được quy định trước? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Chuotdong

Thành viên thường trực
Tham gia
28/11/06
Bài viết
255
Được thích
60
Mình có tình huống sau, định dùng vlookup nhưng chưa được vì dữ liệu ở cột B,C,F,G không sắp theo thứ tự. Cũng hơi khó diễn đạt, các bạn xem dùm trong file gửi kèm
 

File đính kèm

Bạn xem trong file kèm nhé.
 

File đính kèm

Mình có tình huống sau, định dùng vlookup nhưng chưa được vì dữ liệu ở cột B,C,F,G không sắp theo thứ tự. Cũng hơi khó diễn đạt, các bạn xem dùm trong file gửi kèm

Mình làm được như thế rồi ,bây giờ bạn thêm bẫy lổi nữa đi nhe

Có ai có cách khác không ?nhớ có cách khác mà nghỉ không ra +-+-+-+
Thanks
 

File đính kèm

Lần chỉnh sửa cuối:

File đính kèm

Các bạn giúp mình file này nha, hiện tại mình muốn tính tiền cơm tăng ca nhưng không biết làm sao cho gọn, mình làm ra 2 sheet rất thủ công, giúp mình nha. Cảm ơn
 

File đính kèm

Các bạn giúp mình file này nha, hiện tại mình muốn tính tiền cơm tăng ca nhưng không biết làm sao cho gọn, mình làm ra 2 sheet rất thủ công, giúp mình nha. Cảm ơn

Bạn có thể nói lý do tại sao mà bằng 15000 không bạn ? tính làm sau ?:=\+
 
Các bạn giúp mình file này nha, hiện tại mình muốn tính tiền cơm tăng ca nhưng không biết làm sao cho gọn, mình làm ra 2 sheet rất thủ công, giúp mình nha. Cảm ơn
Câu hỏi của bạn:
Nếu >1 và <=2 thì ra kết quả 5,000
Nếu >2 thì ra kết quả 10,000
Cái gì > 1
Cái gì <=2
Cái gì >2
Trời à+-+-+-++-+-+-++-+-+-+
-------------------------------
Ai cha cha....
Xem lòi mắt mới hiểu... Thì ra là:
- Những số nhập trong cell là số giờ tăng ca
- Nếu số giờ tăng ca > 1 và <=2 thì được hưởng phần cơm 5000
- Nếu số giờ tăng ca >2 thì được hưởng phần cơm 10000
Vậy:
PHP:
I4 =SUMPRODUCT(($B4:$H4>1)*($B4:$H4<=2)*5000+($B4:$H4>2)*10000)
Kéo fill xuống
 
Lần chỉnh sửa cuối:
- Nếu số giờ tăng ca > 1 và <=2 thì được hưởng phần cơm 5000
- Nếu số giờ tăng ca >2 thì được hưởng phần cơm 10000
Vậy:
PHP:
I4 =SUMPRODUCT(($B4:$H4>1)*($B4:$H4<=2)*5000+($B4:$H4>2)*10000)
Kéo fill xuống

Em lấy "thừa số chung" ra luôn! Em xin phép được sử dụng lại công thức của anh ndu96081631 nhé!
PHP:
I4 =5000*SUMPRODUCT(($B4:$H4>1)+($B4:$H4>2))
Sau đó kéo fill xuống.
 
Lần chỉnh sửa cuối:
Câu hỏi của bạn:
Cái gì > 1
Cái gì <=2
Cái gì >2
Trời à+-+-+-++-+-+-++-+-+-+
-------------------------------
Ai cha cha....
Xem lòi mắt mới hiểu... Thì ra là:
- Những số nhập trong cell là số giờ tăng ca
- Nếu số giờ tăng ca > 1 và <=2 thì được hưởng phần cơm 5000
- Nếu số giờ tăng ca >2 thì được hưởng phần cơm 10000
Vậy:
PHP:
I4 =SUMPRODUCT(($B4:$H4>1)*($B4:$H4<=2)*5000+($B4:$H4>2)*10000)
Kéo fill xuống
Sao bạn biết mình tính tiền cơm tăng ca vậy, đúng rồi đó

Cảm ơn các bạn đã giúp mình nha.
 
Em lấy "thừa số chung" ra luôn! Em xin phép được sử dụng lại công thức của anh ndu96081631 nhé!
PHP:
I4 =5000*SUMPRODUCT(($B4:$H4>1)+($B4:$H4>2))
Sau đó kéo fill xuống.
đúng rồi, cảm ơn nha
nhưng mình không hiểu lắm,mình thấy bạn đặt thừa số chung mình cảm thấy giống như là (>1+>2)*5000 vậy đó, giải thích giúp mình xíu nha, cảm ơn
 
Lần chỉnh sửa cuối:
Công thức đã tối ưu bạn ko nên chỉnh sửa, nếu có thể bạn up dữ liệu đầy đủ để được trợ giúp tốt hơn. Thân !
 
Lần chỉnh sửa cuối:
PHP:
I4 =5000*SUMPRODUCT(($B4:$H4>1)+($B4:$H4>2))
......nhưng mình không hiểu lắm,mình thấy bạn đặt thừa số chung mình cảm thấy giống như là (>1+>2)*5000 vậy đó, giải thích giúp mình xíu nha, cảm ơn
Công thức này là tận dụng hai số 5.00010.000 = 5.000 x 2
Và điều kiện của bạn cũng chỉ có 2, cụ thể là:
- Nếu số đó >1 và <=2
- Nếu số đó >2


Mình có thể phát biểu công thức trên một cách "bình dân" như sau:
Nếu số đó >1 thì đúng
Nếu số đó > 2 thì đúng
Dấu + là lấy phần hợp của cả hai điều kiện, nghĩa là:
Nếu số đó chỉ >1 và <2 thì cũng đúng
Nếu số đó vừa >1 và vừa > 2 thì sẽ có hai cái đúng --> đúng + đúng = 2 cái đúng
Dùng SUMPRODUCT để "biến hóa" mấy cái đúng đó thành số (không đúng = 0, đúng = 1, đúng + đúng = 1 +1 = 2). Sau đó đem mấy cái số đã "biến hóa" đó nhân với 5.000
Lấy ví dụ:
Ví dụ 1: Mảng của bạn chỉ có 1 phần tử là 3 chẳng hạn:
3>1 --> đúng
3>2 --> đúng
==> (3>1)+(3>2) = đúng +đúng = 2 cái đúng
==> 5.000 x [(3>1)+(3>2)] = 5.000 x (2 cái đúng) = 5.000 x 2 = 10.000
----------------------------------------------------------
Ví dụ 2: Mảng của bạn chỉ có 1 phần tử là 1.5 chẳng hạn:
1.5>1 --> đúng
1.5>2 --> không đúng
==> (1.5>1) + (1.5>2) = đúng + không đúng = 1 cái đúng (lấy phần hợp của hai biểu thức Logic đại số)
==> 5.000 x [(1.5>1)+(1.5>2)] = 5.000 x (1 cái đúng) = 5.000 x 1 = 5.000
----------------------------------------------------------
Ví dụ 3: Mảng của bạn có 2 phần tử là 1.53 chẳng hạn:
1.5>1 --> đúng
3>1 --> đúng
---------------
1.5>2 --> không đúng
3>2 --> đúng
==> ({1.5;3}>1)+({1.5;3}>2) = {đúng;đúng}+{không đúng;đúng}

Cộng hai mảng thì phải cộng từng phần tử tưng ứng của từng mảng, nghĩa là:

{đúng;đúng}+{không đúng;đúng} = {(đúng + không đúng);(đúng + đúng)} = {đúng; 2 cái đúng} = {1,2}
Như vậy: mảng sẽ trả về hai giá trị là {1,2} ==> SUMPRODUCT({1;2}) = 3
Vậy:
5.000 x SUMPRODUCT({1;2}) = 5.000 x 3 = 15.000
----------------------------------------------------------
Hy vọng là bạn hiểu!
 
Lần chỉnh sửa cuối:
Mình làm được như thế rồi ,bây giờ bạn thêm bẫy lổi nữa đi nhe

Có ai có cách khác không ?nhớ có cách khác mà nghỉ không ra +-+-+-+
Thanks
Bạn xem giúp trong trường hợp tìm so sánh không ảnh hưởng khi không phân biệt khi đảo ngược thứ tự thì làm thế nào.

Có nghĩa là mã được định nghĩa là M00# khi Tc1=A và Tc2=B và cả khi Tc1=B và Tc2=A

(file cũ là có phân biệt)
 

File đính kèm

Bạn xem giúp trong trường hợp tìm so sánh không ảnh hưởng khi không phân biệt khi đảo ngược thứ tự thì làm thế nào.

Có nghĩa là mã được định nghĩa là M00# khi Tc1=A và Tc2=B và cả khi Tc1=B và Tc2=A

(file cũ là có phân biệt)

Vấn đề này đâu có khó, cũng trên thuật giải Match và Index, xét thêm điều kiện thôi. Tận dụng dữ liệu của bạn có một bên là số, một bên không phải là số!
Ô I4 bạn gõ công thức:
=IF(ISERROR(MATCH($F4&$H4,IF(ISNUMBER($F4),$C$4:$C$9&$B$4:$B$9,$B$4:$B$9&$C$4:$C$9),0)),"Chưa định nghĩa",INDEX($A$4:$A$9,MATCH($F4&$H4,IF(ISNUMBER($F4),$C$4:$C$9&$B$4:$B$9,$B$4:$B$9&$C$4:$C$9),0)))
Sau đó fill công thức xuống dưới.

Còn nếu cả hai cột dữ liệu không phân biệt số hay text thì phải xét hai hàm match có Error không! Sau đó mới Index.
 

File đính kèm

Bạn xem trong file kèm nhé.
Bạn Salm cho mình hỏi, tại sao công thức của bạn dùng name TC thì được, nếu đánh cụ thể thì không được.
Bạn dùng: =MATCH(F4&G4;TC;1) thì được, nhưng mình thử gõ
=MATCH(F4&G4;$B$4:$B$10&$C$4:$C$10;1) thì không được.

vì mình thấy bạn đặt name TC = Sheét!$B$4:$B$10&$C$4:$C$10 mà
Trong trường hợp bắt buộc phải đặt một cái name ?
 
Bạn xem giúp trong trường hợp tìm so sánh không ảnh hưởng khi không phân biệt khi đảo ngược thứ tự thì làm thế nào.

Có nghĩa là mã được định nghĩa là M00# khi Tc1=A và Tc2=B và cả khi Tc1=B và Tc2=A

(file cũ là có phân biệt)
Trường hợp này bạn tìm 2 lần: A&B rồi B&A ---> Cái nào tìm được thì trả về kết quả cái đó ---> Cả 2 lần tìm không ra thì "chưa định nghĩa"
Chỉ lòng vòng thôi chứ cách làm vẫn tương tự như các bài của các bạn đưa lên ở trên (vẫn là MATCH, INDEX)
Tôi nghĩ đến khúc này bạn thừa sức tự mình làm được ấy chứ
 
Bạn Salm cho mình hỏi, tại sao công thức của bạn dùng name TC thì được, nếu đánh cụ thể thì không được.
Bạn dùng: =MATCH(F4&G4;TC;1) thì được, nhưng mình thử gõ
=MATCH(F4&G4;$B$4:$B$10&$C$4:$C$10;1) thì không được.

vì mình thấy bạn đặt name TC = Sheét!$B$4:$B$10&$C$4:$C$10 mà
Trong trường hợp bắt buộc phải đặt một cái name ?

Đây là công thức mảng. Bạn thử nhấn Ctrl+Shift+Enter xem sao.
 
Trường hợp này bạn tìm 2 lần: A&B rồi B&A ---> Cái nào tìm được thì trả về kết quả cái đó ---> Cả 2 lần tìm không ra thì "chưa định nghĩa"
Chỉ lòng vòng thôi chứ cách làm vẫn tương tự như các bài của các bạn đưa lên ở trên (vẫn là MATCH, INDEX)
Tôi nghĩ đến khúc này bạn thừa sức tự mình làm được ấy chứ
Cám ơn bạn vì thực ra trong đầu mình vẫn cố nghĩ dùng vlookup nên cứ bị ám ảnh vào đó. Bài toán thực tế mình còn mở rộng hơn nữa: như TCi và i => 4. Nhưng để mình đọc kỹ lại các bài của các bạn đã nhé.
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom