rainkv > 30-07-15, 09:47 PM
tranthanhan1962 > 30-07-15, 10:51 PM
(30-07-15, 09:47 PM)rainkv Đã viết: Mình dùng hàm Sum trên report mà sao nó tính ra số âm ( có dấu trừ đằng trước)
Yêu cầu của đề bài là tính tổng số học sinh NAM có mã số lớp là A11
Mình dùng hàm sau: =Sum([Gioitinh]='NAM') và trong query nguồn tại trường MasoHS mình chọn Criteria: "A11"
Kết quả ra đúng tổng số hs nhưng là số âm.
Các bạn giúp mình chổ này với!
rainkv > 30-07-15, 10:58 PM
(30-07-15, 10:51 PM)tranthanhan1962 Đã viết:(30-07-15, 09:47 PM)rainkv Đã viết: Mình dùng hàm Sum trên report mà sao nó tính ra số âm ( có dấu trừ đằng trước)
Yêu cầu của đề bài là tính tổng số học sinh NAM có mã số lớp là A11
Mình dùng hàm sau: =Sum([Gioitinh]='NAM') và trong query nguồn tại trường MasoHS mình chọn Criteria: "A11"
Kết quả ra đúng tổng số hs nhưng là số âm.
Các bạn giúp mình chổ này với!
Mình không biết bạn xử lý data type của trường Gioitinh như thế nào. Nhưng nếu bạn xử lý đó là trường Yes/No, Với Nam = Yes (True), thì =Sum([Gioitinh]=True) là số âm là điều đương nhiên.
Lý do mình nghĩ đây là trường Yes/No vì nếu là trường Text thì với cú pháp =Sum([Gioitinh]='NAM') sẽ bị lỗi.
Trong kiểu dữ liệu Boolean thì True = - 1 và False = 0, Vì vậy tổng của các số -1 phải là số âm. Muốn nó trờ thành số dương phải xử lý =Abs(Sum([Gioitinh]=True)). Nhưng trong trường hợp này nếu bạn tính tổng của NỮ=Sum([Gioitinh]=False) sẽ luôn luôn có gía trị = 0. Vì vậy, trong trường hợp dùng một trường Yes/No để xử lý cho Giới tính. Khi tính toán trên query phải tạo thành 2 trường NAM = If([Gioitinh]=True,1,0); NU=If([Gioitinh]=False,1,0) rồi mới tính. Hoặc trên tổng của Report thì NAM=Sum(If([Gioitinh]=True,1,0) và NU=Sum(If([Gioitinh]=False,1,0).
Ngoài ra, nếu muốn đơn giản hơn bạn có thể xử lý NAM = Abs(Sum([Gioitinh]=True)), NU=Count([Hocsinh])-NAM nếu bạn không có giới tính thứ 3
Chúc bạn thành công.
tranthanhan1962 > 30-07-15, 11:00 PM
(30-07-15, 09:47 PM)rainkv Đã viết: Mình gặp lỗi hàm IIF lồng nhau trên report
Yêu cầu là tính tổng số hs có điểm môn toán là lớn hơn 8 và mã số lớp là A11
Mình dùng hàm sau: =Sum(IIf("[Toan]">'8',1,0) And ("[MasoHS]"='A11',1,0)) nhưng báo lỗi error.
rainkv > 31-07-15, 07:56 AM
(30-07-15, 11:00 PM)tranthanhan1962 Đã viết:(30-07-15, 09:47 PM)rainkv Đã viết: Mình gặp lỗi hàm IIF lồng nhau trên report
Yêu cầu là tính tổng số hs có điểm môn toán là lớn hơn 8 và mã số lớp là A11
Mình dùng hàm sau: =Sum(IIf("[Toan]">'8',1,0) And ("[MasoHS]"='A11',1,0)) nhưng báo lỗi error.
Data Type của đểm Toán là Number sao bạn lại đặt nó vào dấu nháy. Các cặp "",'' chỉ dành cho kiểu dữ liệu Text mà thôi. Cú pháp phải là =Sum(IIf([Toan]>8,1,0) * ([MasoHS]='A11',1,0)). Tên trường chỉ nằm giữa [] không có ""
tranthanhan1962 > 31-07-15, 09:28 AM