Tính SUM(TRUE,FALSE) và lấy TRUE + FALSE ra kết quả khác nhau

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

Sapa2016

Thành viên mới
Tham gia
23/5/17
Bài viết
15
Được thích
11
Giới tính
Nữ
Nghề nghiệp
Nhân viên
Dear anh chị,

E có thắc măc một điều rất đơn giản như này nhưng kết quả khác nhau và điều đó cũng khó hiểu.
E nhờ các anh chị chỉ giúp ạ. E cảm ơn anh chị ạ.
Câu hỏi như sau:
Nếu em dùng hàm SUM để tính 2 ô giá trị là TRUE,FALSE là: SUM(TRUE,FALSE) thì kết quả = 0.
Nhưng nếu em dùng 2 ô tính và ấn cộng với nhau bình thường là : Ô TRUE + ô FALSE thì kết quả lại = 1
upload_2017-7-5_15-21-30.png
 
Dear anh chị,

E có thắc măc một điều rất đơn giản như này nhưng kết quả khác nhau và điều đó cũng khó hiểu.
E nhờ các anh chị chỉ giúp ạ. E cảm ơn anh chị ạ.
Câu hỏi như sau:
Nếu em dùng hàm SUM để tính 2 ô giá trị là TRUE,FALSE là: SUM(TRUE,FALSE) thì kết quả = 0.
Nhưng nếu em dùng 2 ô tính và ấn cộng với nhau bình thường là : Ô TRUE + ô FALSE thì kết quả lại = 1
View attachment 179002
câu hỏi này tưởng đơn giản mà khó nhỉ.
Hóng câu trả lời
 
Dear anh chị,

E có thắc măc một điều rất đơn giản như này nhưng kết quả khác nhau và điều đó cũng khó hiểu.
E nhờ các anh chị chỉ giúp ạ. E cảm ơn anh chị ạ.
Câu hỏi như sau:
Nếu em dùng hàm SUM để tính 2 ô giá trị là TRUE,FALSE là: SUM(TRUE,FALSE) thì kết quả = 0.
Nhưng nếu em dùng 2 ô tính và ấn cộng với nhau bình thường là : Ô TRUE + ô FALSE thì kết quả lại = 1
View attachment 179002
Đơn giản, khi bạn dùng:
1/ Nên nhớ cú pháp của SUM là SUM(number1,[number2],...), khi =SUM(TRUE,FALSE) thì bản thân TRUE FALSE không phải số nên hàm SUM() không tìm ra số nào trong hai ô G3:G4 nên nó trả về số 0, bạn chỉ cần thêm N(G3:G4) tức là SUM(N(G3:G4)) thì ra ngay thôi.
2/ Khi dùng G3+G4, lúc bấy giờ Excel tự chuyển TRUE thành 1 và FALSE thành 0 cho nên ra kết quả là 1. Hay FALSE+FALSE =0. Bạn cũng có thể tìm hiểu thêm khi TRUE*1 (hoặc FALSE*1), hay +1, hay +0, hay /1....

Cách 1 =SUM(N(G3:G4)) là chuyển đổi từ trị luận lý sang số rồi cộng lại bằng hàm.
Cách 2 =G3+G4 là cơ chế tự chuyển đổi của excel.

Chúc bạn ngày vui.
 
Lần chỉnh sửa cuối:
Đơn giản, khi bạn dùng:
1/ Nên nhớ cú pháp của SUM là SUM(number1,[number2],...), khi =SUM(TRUE,FALSE) thì bản thân TRUE FALSE không phải số nên hàm SUM() không tìm ra số nào trong hai ô G3:G4 nên nó trả về số 0, bạn chỉ cần thêm N(G3:G4) tức là SUM(N(G3:G4)) thì ra ngay thôi.
2/ Khi dùng G3+G4, lúc bấy giờ Excel tự chuyển TRUE thành 1 và FALSE thành 0 cho nên ra kết quả là 1. Hay FALSE+FALSE =0. Bạn cũng có thể tìm hiểu thêm khi TRUE*1 (hoặc FALSE*1), hay +1, hay +0, hay /1....

Chúc bạn ngày vui.
Nói thêm:

Bạn dùng =Type(G3) hay =Type(G4) nó sẽ trả về trị là số 4, là kiểu "luận lý" không phải là số.

Trong kiểu dữ liệu của excel có 5 kiểu:

số 1: là kiểu "number" (dành cho số và ngày)
số 2: là kiểu "text" - kiểu chuỗi.
số 4: là kiểu "logical" - trị luận lý (đúng sai)
số 16: là kiểu "error value" - lỗi
số 64: là kiểu "array" - mảng.

Chúc bạn ngày vui.
 
Dear anh chị,

E có thắc măc một điều rất đơn giản như này nhưng kết quả khác nhau và điều đó cũng khó hiểu.
E nhờ các anh chị chỉ giúp ạ. E cảm ơn anh chị ạ.
Câu hỏi như sau:
Nếu em dùng hàm SUM để tính 2 ô giá trị là TRUE,FALSE là: SUM(TRUE,FALSE) thì kết quả = 0.
Nhưng nếu em dùng 2 ô tính và ấn cộng với nhau bình thường là : Ô TRUE + ô FALSE thì kết quả lại = 1
View attachment 179002
SUM sao mà giống phép toán cộng được chứ?
Giống như bạn gõ chữ "a" vào cell A1, số 5 vào cell A2 rồi dùng công thức =SUM(A1:A2) bạn sẽ có kết quả =5. Thế nhưng A1+A2 thử xem có được không?
Nói chung: NGUYÊN TẮC là do anh Bill và "bạn" anh ta (những người lập trình tạo nên Excel) đặt ra và bạn bắt buộc phải tuân thủ bằng cách đọc HELP
 
Cách 2 =G3+G4 là cơ chế tự chuyển đổi của excel.

Trong nghề, cái này gọi là "ép kiểu". Tiếng Anh là (type) cast. Đại khái thì ép kiểu nó cũng có quy luật của nó.
Ví dụ như Boolean có thể ép lên thành Integer. Phép toán cộng sẵn sàng ép kiểu; trong hầu hết các trường hợp, cái nào ép được là nó ép tuốt. Phép ghép chuỗi (&) cũng sẵn sàng ghép kiểu.
(phép cộng ngang hàng với phép trừ, vì vậy trong một số công thức các bạn vẫn lợi dụng tính chất này để ép kiểu với -- khi con toán không tự ép kiểu được)

SUM là hàm. MS cố tình không cho nó tự ép kiểu tham của nó vì lý do cần tránh lỗi bất ngờ.

Trong hệ nhị phân thì true=1, false=0 (thì phải).

Không phải do hệ nhị phân. Một số hệ thống hoặc ngôn ngữ coi True như tương đương với <> 0. Excel ép kiểu True ra 1. (VBA ép kiểu True ra -1)
 
Web KT

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

Back
Top Bottom