Công thức để kiểm tra xem các ô có giá trị nào trùng nhau hay không?

Liên hệ QC

phamvandunghp84

Thành viên thường trực
Tham gia
5/3/20
Bài viết
241
Được thích
12
Các bạn ơi cho mình xin công thức để kiểm tra xem trong các ô: G2, I3,K5,M2,O7 có giá trị nào bị trùng nhau hay không? Thì mình phải viết công thức như nào?
 
G2=I3=K5...... Nếu kết quả bằng true thì bằng nhau và ngược lại
 
Chắc cháu lại nghĩ sai rồi. Xin lỗi chủ thớt. Dựa vào kia để tìm cách giải thích hợp nhé
Trong toán học, a=b=c một cách diễn tả trạng thái bằng nhau của 3 phần tử.
Trong lúc tính toán, a=b=c là một biểu thức kép, trong đó có nhiều hơn 1 toán tử (tức là 2). Biểu thức đơn là biểu thức chỉ có 1 toán tử.
Một biểu thức kép sẽ được phân ra thành nhiều biểu thức đơn, và tuần tự tính theo luật thứ tự ưu tiên của toán tử.
Khi tính biểu thức:
a=b=c
Excel sẽ tách ra từng biểu thức con.
Vì toán tử "=" không có cái nào trên cái nào cho nên Excel sẽ tính biểu thức con từ trái qua phải.
a=b=c --> (a=b)=c --> Excel sẽ tính trị của biểu thức a=b; kế đó đem trị này làm vế trái của toán tử "=" thứ hai, với c là vế phải.

Phụ chú:
Trong biểu thức:
a + b * c
thì toán tử "*" ưu tiên hơn "+" cho nên Excel sẽ tính b * c trước; sau đó mới đem kết quả làm vế phải cho toán tử "+", và cộng với a
 
a=b=c --> (a=b)=c --> Excel sẽ tính trị của biểu thức a=b; kế đó đem trị này làm vế trái của toán tử "=" thứ hai, với c là vế phải.
Cám ơn chú đã chỉ dẫn cho cháu. Thế mà trước giờ cứ suy nghĩ theo hướng mà cháu đã nói ở trên ấy.
 
Cám ơn chú đã chỉ dẫn cho cháu. Thế mà trước giờ cứ suy nghĩ theo hướng mà cháu đã nói ở trên ấy.
Bạn ơi mình không hiểu rõ lắm bạn viết giúp mình công thức kiểm tra có giá trị nào giống nhau cho 5 ô này thì viết cụ thể như nào bạn ? G2, I3,K5,M2,O7

Mình thử viết như này nhưng không đúng: =IF((((G2=I3)=K5)=M2)=O7;"có trùng";"không trùng")
 
Các bạn ơi cho mình xin công thức để kiểm tra xem trong các ô: G2, I3,K5,M2,O7 có giá trị nào bị trùng nhau hay không? Thì mình phải viết công thức như nào?
Hay là quét cả vùng đi bác.
True: Có Trùng.
False: Không trùng.

=SUM(IF(COUNTIF(G2:O7,G2:O7)>1,1,0))>0
 
Trùng nhau thì dùng Conditional Formatting cho nhanh :D
Đọc True-False cũng nhức đầu.
 
Đối với phần lớn các hệ thống tin học:
= là một toán tử so sánh ---> a = b là một biểu thức so sánh a với b, kết quả là True nếu a bằng b và False nếu a khác b. Kết quả này có kiểu là Boolean.
Mặt khác, với phần lớn các hệ tin học, = cũng có thể được dùng cho phép gán. Trong ngữ cảnh phép gán thì a = b là đem trị của b gán cho a.

a = b = c ---> trong ngữ cảnh toán tử so sánh thì hệ thống sẽ so sánh a với b, và đem cái kết quả True/False này so sánh với c (dĩ nhiên trong trường hợp này, c phải là kiểu Boolean).

a = b = c ---> trong ngữ cảnh phép gán thì có hai trường hợp:
1. trường hợp 1 phép gán: hệ thống sẽ so sánh b với c và đem kết quả gán cho a (dĩ nhiên trong trường hợp này, a phải là kiểu Boolean)
2. trường hợp 2 phép gán (đối với C hay JavaScript, = là phép gán, == mới là toán tử so sánh): hệ thống sẽ đem trị của c gán cho b, và đồng thời gán cho a. Dĩ nhiên là trong trường hợp này, a b c phải có cùng kiểu.

Xin đừng nhầm lẫn với lối sử dụng trong môn toán học: dấu = không phải là một toán tử. Nó chỉ là một ký hiệu diễn tả tình trạng cân bằng của hai vế hai bên trái và phải nó.
Vì nó là ký hiệu cho nên người ta có thể viết theo phép chuyền: a = b = c =...
 
Nếu đã cứ suy nghĩ như thế, thì cũng nên ít nhất 1 lần kiểm tra xem suy nghĩ ấy đúng hay sai.
Cháu chào chú. Hihi. Do là chưa bao giờ gặp trường hợp như thế. Nên chỉ nghĩ như vậy trước tới giờ. Chứ cháu cũng chưa thử bao giờ. Nay mọi người nói mới ngộ ra đấy ạ
 
Cháu chào chú. Hihi. Do là chưa bao giờ gặp trường hợp như thế. Nên chỉ nghĩ như vậy trước tới giờ. Chứ cháu cũng chưa thử bao giờ. Nay mọi người nói mới ngộ ra đấy ạ
Trước khi trả lời như bài 2, nếu là tôi thì sẽ thấy đây là 1 cơ hội để tự ngộ ra, không cần mọi người nói.
 
Trước khi trả lời như bài 2, nếu là tôi thì sẽ thấy đây là 1 cơ hội để tự ngộ ra, không cần mọi người nói.
Hihi. Cháu đã xin lỗi ở bài 4. Do đọc logic bài 3. Còn bài 2 là do suy nghĩ có sẵn trong đầu ngay từ đầu rồi + không có kiểm tra trước khi trả lời mà chú.
 
Thử như này
Mã:
=IF(INDEX((I3=G2)*(K5=G2)*(M2=G2)*(O7=G2),,),"trùng","không trùng")
Bạn ơi mình thử công thức này thấy trong trường hợp có hai ô có giá trị trùng nhau nhưng lại không phát hiện ra
Bài đã được tự động gộp:

Hay là quét cả vùng đi bác.
True: Có Trùng.
False: Không trùng.

=SUM(IF(COUNTIF(G2:O7,G2:O7)>1,1,0))>0
Bạn ơi mình thử công thức này nhưng thấy trong trường hợp có giá trị trùng nhau nó cũng vẫn báo FALSE
Bài đã được tự động gộp:

Trùng nhau thì dùng Conditional Formatting cho nhanh :D
Đọc True-False cũng nhức đầu.
Bạn ơi bạn có thể viết cụ thể công thức ra được không bạn ( trong bài toán này mình muốn dùng công thức sẵn có của excel cho đơn giản chứ không muốn dùng tới VBA )
Bài đã được tự động gộp:

Đối với phần lớn các hệ thống tin học:
= là một toán tử so sánh ---> a = b là một biểu thức so sánh a với b, kết quả là True nếu a bằng b và False nếu a khác b. Kết quả này có kiểu là Boolean.
Mặt khác, với phần lớn các hệ tin học, = cũng có thể được dùng cho phép gán. Trong ngữ cảnh phép gán thì a = b là đem trị của b gán cho a.

a = b = c ---> trong ngữ cảnh toán tử so sánh thì hệ thống sẽ so sánh a với b, và đem cái kết quả True/False này so sánh với c (dĩ nhiên trong trường hợp này, c phải là kiểu Boolean).

a = b = c ---> trong ngữ cảnh phép gán thì có hai trường hợp:
1. trường hợp 1 phép gán: hệ thống sẽ so sánh b với c và đem kết quả gán cho a (dĩ nhiên trong trường hợp này, a phải là kiểu Boolean)
2. trường hợp 2 phép gán (đối với C hay JavaScript, = là phép gán, == mới là toán tử so sánh): hệ thống sẽ đem trị của c gán cho b, và đồng thời gán cho a. Dĩ nhiên là trong trường hợp này, a b c phải có cùng kiểu.

Xin đừng nhầm lẫn với lối sử dụng trong môn toán học: dấu = không phải là một toán tử. Nó chỉ là một ký hiệu diễn tả tình trạng cân bằng của hai vế hai bên trái và phải nó.
Vì nó là ký hiệu cho nên người ta có thể viết theo phép chuyền: a = b = c =...
Cảm ơn bạn, Thấy bạn diễn giải rất sâu sắc, chỉ tiếc là mình không am hiểu rõ lắm nên không biết cách áp dụng, Bạn có thể cho mình xin công thức cụ thể để kiểm tra xem trong những ô G2, I3,K5,M2,O7 có giá trị trùng nhau không? Cảm ơn bạn !
 

File đính kèm

  • Kiểm tra có giá trị trùng nhau hay không.xlsx
    8.7 KB · Đọc: 2
  • Kiểm tra có giá trị trùng nhau hay không.xlsx
    8.8 KB · Đọc: 12
Lần chỉnh sửa cuối:
Dùng hàm choose để dồn các ô (cells) vào một mảng.
Dùng hàm Unique để lấy các trị không trùng.
So sánh count của kết quả này với count của mảng trên.
 
Nếu phiên bản không có hàm Unique thì phải ép mảng thành range như sau:
=SUM(COUNTIF(INDIRECT({"G2","I3","K5","M2","O7"}),CHOOSE({1;2;3;4;5},G2,I3,K5,M2,O7)))
(Ctrl+Shift+Enter)
Nếu dữ liệu chỉ toàn số thì như sau:
=SUM(COUNTIF(INDIRECT({"G2","I3","K5","M2","O7"}),N(INDIRECT({"G2";"I3";"K5";"M2";"O7"}))))
(công thức thường, không cần CSE)

Nếu kết quả ra:
= 5 --> không có trùng (5 là số ô cần so sánh)
> 5 --> có trùng
khác --> có trục trặc trong công thức
 
Bạn ơi mình thử công thức này thấy trong trường hợp có hai ô có giá trị trùng nhau nhưng lại không phát hiện ra
Bài đã được tự động gộp:


Bạn ơi mình thử công thức này nhưng thấy trong trường hợp có giá trị trùng nhau nó cũng vẫn báo FALSE
Bài đã được tự động gộp:


Bạn ơi bạn có thể viết cụ thể công thức ra được không bạn ( trong bài toán này mình muốn dùng công thức sẵn có của excel cho đơn giản chứ không muốn dùng tới VBA )
Bài đã được tự động gộp:


Cảm ơn bạn, Thấy bạn diễn giải rất sâu sắc, chỉ tiếc là mình không am hiểu rõ lắm nên không biết cách áp dụng, Bạn có thể cho mình xin công thức cụ thể để kiểm tra xem trong những ô G2, I3,K5,M2,O7 có giá trị trùng nhau không? Cảm ơn bạn !
Thử (nếu dữ liệu là số) :
=MODE(G2,I3,K5,M2,O7)
Nếu báo lỗi là không trùng. Không lỗi mà xuất hiện số là có trùng
 
Nếu phiên bản không có hàm Unique thì phải ép mảng thành range như sau:
=SUM(COUNTIF(INDIRECT({"G2","I3","K5","M2","O7"}),CHOOSE({1;2;3;4;5},G2,I3,K5,M2,O7)))
(Ctrl+Shift+Enter)
Nếu dữ liệu chỉ toàn số thì như sau:
=SUM(COUNTIF(INDIRECT({"G2","I3","K5","M2","O7"}),N(INDIRECT({"G2";"I3";"K5";"M2";"O7"}))))
(công thức thường, không cần CSE)

Nếu kết quả ra:
= 5 --> không có trùng (5 là số ô cần so sánh)
> 5 --> có trùng
khác --> có trục trặc trong công thức
không hiểu vì sao mình thử cả hai công thức cho file này thì thấy luôn bằng 5, Bạn thử xem giúp mình xem mình sai ở đâu nhỉ?
 

File đính kèm

  • Kiểm tra có giá trị trùng nhau hay không.xlsx
    8.9 KB · Đọc: 5
Web KT
Back
Top Bottom