Nhờ mọi người kiểm tra lại công thức

Liên hệ QC

lemanhha0276

Thành viên mới
Tham gia
5/12/09
Bài viết
46
Được thích
34
Hôm trước tôi đã được bạn "nghiaphuc" lập giúp công thức cho bài tập "tính tiền đo đạc". Tuy nhiên sau khi kiểm tra lại có một chút lỗi nhỏ.
Cụ thể: Với sản phẩm là "TD" có diện tích nhỏ hơn 100m2 thì máy báo "#N/A".
Rất mong anh chị chỉnh lại giúp.
 

File đính kèm

Hôm trước tôi đã được bạn "nghiaphuc" lập giúp công thức cho bài tập "tính tiền đo đạc". Tuy nhiên sau khi kiểm tra lại có một chút lỗi nhỏ.
Cụ thể: Với sản phẩm là "TD" có diện tích nhỏ hơn 100m2 thì máy báo "#N/A".
Rất mong anh chị chỉnh lại giúp.
Trong bản của bạn với sản phẩm là "TD" thì trong bảng không co giá trị 99 hoặc 50 nên phải thêm tham chiếu. Hàm Vlookup và HLookup phải tìm giá trị chính xác chứ bạn. Bạn xem lại xem
 
Lần chỉnh sửa cuối:
Bạn sửa công thức ở H7 như sau:
=SUMPRODUCT(--(F7="TL"),122369*IF(G7<=10000,1,G7/10000))+SUMPRODUCT(--(F7="TD")*--(G7<=10000),HLOOKUP(ROUNDUP(G7,-2),$K$11:$P$13,MATCH(D7,$J$12:$J$13)+1))+SUMPRODUCT(--(F7="TD")*--(G7>10000),VLOOKUP(E7,$J$19:$K$22,2))/10000*G7
 
Hôm trước tôi đã được bạn "nghiaphuc" lập giúp công thức cho bài tập "tính tiền đo đạc". Tuy nhiên sau khi kiểm tra lại có một chút lỗi nhỏ.
Cụ thể: Với sản phẩm là "TD" có diện tích nhỏ hơn 100m2 thì máy báo "#N/A".
Rất mong anh chị chỉnh lại giúp.
Lỗi này xảy ra do công thức dò tìm =HLOOKUP(G7,$J$11:$Q$13,IF(D7="D T",2,3),1) diện tích dưới 100 bạn thêm 1 cột nữa ở vùng dò tìm là được
 

File đính kèm

Chào solomon2211. Làm phiền "anh" chút nữa nhe.
Tại bảng tham chiếu 1: Mình bị lộn vị trí giữa "NT" và "DT". Vì vậy khi đưa công thức của "anh" vào nó chạy lung tung. Nhờ anh điều chỉnh lại giùm.
Có thương thì thương cho chót anh ơi.
 
Có vài chỗ cho kết quả sai. Bạn xem lại H11 xem kết quả là 857.404 đúng hay 574.760 đúng.
 
Mình đã thay đổi lại vị trí "DT" và "NT" ở bảng tahm chiếu 1. Nhưng không post lên được.
 
Tại ô H11, Diện tích =700, là sản phẩm trích đo "TD" thuộc khu vực đô thị "DT" nên số tiền là 1.076.516.
Anh solomon chỉnh lại vị trí "DT" và "NT" giùm luôn nhe. (Đảo vị trí là xong)
 
Chào solomon2211. Làm phiền "anh" chút nữa nhe.
Tại bảng tham chiếu 1: Mình bị lộn vị trí giữa "NT" và "DT". Vì vậy khi đưa công thức của "anh" vào nó chạy lung tung. Nhờ anh điều chỉnh lại giùm.
Có thương thì thương cho chót anh ơi.

Công thức ở H7 sẽ là:

=SUMPRODUCT(--(F7="TL"),122369*IF(G7<=10000,1,G7/10000))+SUMPRODUCT(--(F7="TD")*--(G7<=10000),HLOOKUP(ROUNDUP(G7,-2),$K$11:$P$13,IF(D7="DT",2,1)+1))+SUMPRODUCT(--(F7="TD")*--(G7>10000),VLOOKUP(E7,$J$19:$K$22,2))/10000*G7
 
Bạn Viethoai ơi. Công thức bổ sung của bạn vẫn chạy chưa chính xác.
VD: Sản phẩm "TD" có diện tích <100. Tại khu vực "DT" là 571607, còn "NT" thì là 383182.
Khi thử thay "NT" thành "DT" tại cột "khu vực" thì không thấy thay đổi số tiền. Bạn xem lại giùm nhé
 
Hai cách giải đều chưa có kết quả tối ưu vì thử đưa diện tích 120 vào thì sai.
 
Đúng rồi, nếu diện tích từ 101 đến 300 thì thành tiền là 809722 (đối với DT), 478972 (đối với NT). Như vậy phải làm sao ta.
Đồng bào GPE ơi. Cứu tôi với. Ặc, ặc...
Mà cho em hỏi, Anh Solomon2211 ơi, anh ở HCM, hay BD và cụ thể ở đâu vậy.
 
Nếu là mình, mình xài cái ni, dễ kiểm soát & bảo trì

PHP:
Option Explicit
Function DonGiaSF(LoaiSF As String, DT As Double, KhuVuc As String, TyLe As Long)
 If UCase$(LoaiSF) = "TL" Then
      DonGiaSF = 122369 * IIf(DT >= 10 ^ 4, DT / 10 ^ 4, 1)
      Exit Function
 End If
 If DT > 10 ^ 4 Then
   With Application.WorksheetFunction
      DonGiaSF = .VLookup(TyLe, Range("ThCh02"), 2, True)
   End With
 Else
   KhuVuc = UCase$(KhuVuc)
   If KhuVuc = "DT" Then
      DonGiaSF = Switch(DT <= 100, 383182, DT <= 300, 478972, DT <= 500, 574760, _
         DT <= 1000, 718442, DT <= 3000, 957913, DT < 10 ^ 5, 1436855)
   ElseIf KhuVuc = "NT" Then
      DonGiaSF = Switch(DT <= 100, 571607, DT <= 300, 709772, DT <= 500, 757404, _
         DT <= 1000, 1076516, DT <= 3000, 1428999, DT < 10 ^ 5, 2143493)
   Else
      DonGiaSF = "GPE.COM"
   End If
 End If
End Function

Cú fáp tại [I11] sẽ là =DonGiaSF(F11,G11,D11,E11)

Còn nữa: Mình đã gán tên cho bảng tra cứu thứ hai là 'ThCh02' đó nha!

 
Chỉnh sửa lần cuối bởi điều hành viên:
Bạn đã bị lỗi khi dùng hàm HLOOKUP(). Vì Nếu lookup_value nhỏ hơn giá trị nhỏ nhất trong dòng đầu tiên của bảng dữ liệu phụ, HLOOKUP trả về lỗi #N/A!.
Tôi đã dùng hàm VLOOKUP() và có file gửi kèm bạn xem thử
 

File đính kèm

Bạn dùng hàm này thử xem:
Mã:
IF(AND(F7="TL";G7<=10000);122369;IF(F7="TL";122369*G7/10000;IF(G7<=10000;VLOOKUP(D7;$J$12:$P$13;LOOKUP(G7;{0;101;301;501;1001;3001};{2;3;4;5;6;7});0);VLOOKUP(E7;$J$19:$K$22;2;1)*E7/10000)))
 
Vui là chính, rút gọn là fụ

To MinhCong & ~ ai quan tâm!

Như là mình, mình sẽ vô menu Insert để gán 1 cái tên 'Van' ; Mà trong cửa sổ Refers To ta nhập =10^4 & OK
Công thức sẽ thấy zui zui thêm 1 xíu

Vui nha!
 
Cảm ơn tất cả mọi người. Tui hứa sẽ cố gắng trau rồi để học hỏi thêm. Không phụ lòng "bà con" của GPE
 
Web KT

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

Back
Top Bottom