• Nhờ tư vấn công thức có 2 điều kiện
  • Nhờ tư vấn công thức có 2 điều kiện

    anhemnhangu > 24-07-15, 05:45 PM

    Em đang làm tờ khai tạm tính thuế TNCN, em đang gặp vấn đề về công thức có 2 điều kiện,
    em loay hoay hoài mà lãm vẫn chưa được nên nhờ các bác chỉ giáo thêm ạ.

    Công thức của em: =IIf([uyquyen]<>1 And [trichthue]>0;Sum([TNchiuthue]);0)
    nghĩa là: em tính tổng những trường hợp nếu trong danh sách [ủy quyền[ không phải là 1 và có số thuế [tạm trích] > 0 thì cộng [thu nhập chịu thuế]

    Nếu đúng cú pháp thì số của em trong file đính kèm cần cộng là:  9.158.000+53.979.481+25.181.870

    Các bác xem file đính kèm. http://www.mediafire.com/download/18vntn...en+dan.rar
  • RE: Nhờ tư vấn công thức có 2 điều kiện

    ongke0711 > 24-07-15, 06:15 PM

    Bị sai ở field [uyquyen]. Phải <> 1 và Is Null vì field này có chưa giá trị NULL và Null thi không có nghĩa là <>1 nên nó lọc không ra.
  • RE: Nhờ tư vấn công thức có 2 điều kiện

    anhemnhangu > 25-07-15, 09:00 AM

    (24-07-15, 06:15 PM)ongke0711 Đã viết: Bị sai ở field [uyquyen]. Phải <> 1 và Is Null vì field này có chưa giá trị NULL và Null thi không có nghĩa là <>1 nên nó lọc không ra.

    Vậy công thức mình sửa lại như thế nào nhờ các bác hướng dẫn thêm.
    Cám ơn.
  • RE: Nhờ tư vấn công thức có 2 điều kiện

    anhemnhangu > 25-07-15, 09:33 AM

    (25-07-15, 09:00 AM)anhemnhangu Đã viết: [quote='ongke0711' pid='27085' dateline='1437732951']
    Bị sai ở field [uyquyen]. Phải <> 1 và Is Null vì field này có chưa giá trị NULL và Null thi không có nghĩa là <>1 nên nó lọc không ra.

    Công thức em sửa lại là:

    =IIf([uyquyen] Is Null And [trichthue]>0;DSum("[TNchiuthue]";"TAI";"[trichthue]>'0'");0)

    Nhưng kết quả là 0, chắc nó vẫn còn sai gì đấy. Rất mong các bác tư vấn thêm.
  • RE: Nhờ tư vấn công thức có 2 điều kiện

    anhemnhangu > 25-07-15, 09:40 AM

    (25-07-15, 09:33 AM)anhemnhangu Đã viết:
    (25-07-15, 09:00 AM)anhemnhangu Đã viết: [quote='ongke0711' pid='27085' dateline='1437732951']
    Bị sai ở field [uyquyen]. Phải <> 1 và Is Null vì field này có chưa giá trị NULL và Null thi không có nghĩa là <>1 nên nó lọc không ra.

    Công thức em sửa lại là:

    =IIf([uyquyen] Is Null And [trichthue]>0;DSum("[TNchiuthue]";"TAI";"[trichthue]>0");0)

    Nhưng kết quả là 0, chắc nó vẫn còn sai gì đấy. Rất mong các bác tư vấn thêm.
  • RE: Nhờ tư vấn công thức có 2 điều kiện

    ongke0711 > 25-07-15, 11:30 AM

    Dùng Dsum có điều kiện nhé.
    =DSum("[TNchiuthue]","[TAI]","([uyquyen]<>1 Or [uyquyen] Is Null) And [trichthue]>0")
  • RE: Nhờ tư vấn công thức có 2 điều kiện

    anhemnhangu > 25-07-15, 12:25 PM

    (25-07-15, 11:30 AM)ongke0711 Đã viết: Dùng Dsum có điều kiện nhé.
    =DSum("[TNchiuthue]","[TAI]","([uyquyen]<>1 Or [uyquyen] Is Null) And [trichthue]>0")

    Em nhập copy vào report của em thì nó vẫn còn báo lỗi cú pháp, anh có thể góp ý thêm.
    Cám ơn,
  • RE: Nhờ tư vấn công thức có 2 điều kiện

    ongke0711 > 25-07-15, 01:09 PM

    Nó báo lỗi như thế nào? Máy tôi vẫn chạy bình thường mà.
    Xem file demo
  • RE: Nhờ tư vấn công thức có 2 điều kiện

    anhemnhangu > 27-07-15, 08:41 AM

    (25-07-15, 01:09 PM)ongke0711 Đã viết: Nó báo lỗi như thế nào? Máy tôi vẫn chạy bình thường mà.
    Xem file demo

    Cám ơn bác rất nhiều.
    Trân trọng.
  • RE: Nhờ tư vấn công thức có 2 điều kiện

    tranthanhan1962 > 29-07-15, 07:24 AM

    Góp một số ý nhỏ với anhemnhangu (hì hì mình xin được sorry trước nhưng mà thấy nick của bạn mình thấy dị ứng quá. Tất nhiên việc đặt tên nick là quyền của bạn). Trở lại vấn đề chính, công thức của bạn ongke0711 sử dụng tốt trong trường hợp của bạn. Nhưng vấn để ở đây chính là bạn đã làm khó mình trong việc thiết đặt ban đầu data type field.
    1/ Trừ những trường hợp bị bắt buột, các trường dữ liệu số bạn nên đặt là default value = 0 để nhẹ nhàng trong việc viết code sau này.
    Ví dụ nếu các trường họp không phải uyquyen <>1 thì chắc chắn sẽ là 0. Khi đó bạn tạo công thức rất dễ dàng. Ngoài ra bạn phải khỏi dùng hàm NZ để xử lý khi tạo các công thức khác.
    2/Trong trường hợp của bạn thay vì xử lý có ủy quyền = 1 / không ủy quyền = Null (đây là 2 kiểu dữ liệu khác nhau trên cùng 1 field nha bạn.). Bạn có thể dùng data type là Yes/No (Vì trường này chỉ có 2 trường hợp). Khi thiết đặt công thức sẽ dễ dàng hơn nhiều.
    Nếu có thời gian mình sẽ post một chủ đề nói về các lỗi của Null và phương pháp xử lý
    Ở đây