hàm if trong excel

Liên hệ QC

hung1981

Thành viên mới
Tham gia
20/12/06
Bài viết
15
Được thích
3
mình làm trong excel hay dùng hàm if để tính thử dần một bài toán để thoả mãn giá trị "Q" cho trước nào đó
vd: if(Qtt<Q;hgt+0.00001;hgt-0.00001)
với điều kiện: gán trước hgt một giá trị, gán h = hgt, Q=f(h)
khi tính mình dùng phím F9 để chạy hàm if trên nhưng nó hay bị NUM bạn nào có thể giúp mình thành lập 1 macro thay thế cách làm trên không
xin cảm ơn rất nhiều
Mình muốn tìm được
mình có file đính kèm @#!^%
 

File đính kèm

  • tinhthudan.xls
    21 KB · Đọc: 461
sao không có ai giúp mình thế
 
Chưa ai trả lời bạn có lẽ vì họ không rõ về mục đích và yêu cầu của bạn.
 
hung1981 đã viết:
mình làm trong excel hay dùng hàm if để tính thử dần một bài toán để thoả mãn giá trị "Q" cho trước nào đó
vd: if(Qtt<Q;hgt+0.00001;hgt-0.00001)@#!^%
Bạn thử thủ công để tìm nghiệm ! Bái phục bạn thật. Tôi viết macro cho bạn thử, nó sẽ quay vòng 10.000 lần để tìm kết quả, nếu có kết quả sẽ thông báo cho bạn biết. Nếu không, bạn cho giá trị khác để thử lại.
Bạn bấm Ctrl+Shift+T để chạy macro

Mã:
Sub TimNghiem()
'
' TimNghiem Macro
' Macro recorded 11/07/2007 by User
'
' Keyboard Shortcut: Ctrl+Shift+T
'
Dim h As Double, h1 As Double, hh As Double
h = Range("a16")
n = 1
Do
  h1 = h + 0.00001
  Range("B16") = h1
  hh = Abs(Range("H16") - Range("E3"))
  If hh < 0.0001 Then 'Sai so +/- 0,0001
    MsgBox "Tim ra ket qua"
    Exit Do
  End If
  h = h1
  n = n + 1
  If n = 10000 Then Exit Do 'Quay vong toi da 10.000 lan
Loop
End Sub
Bạn có thể chỉnh lại 2 số 0.0001 hoặc 10000 theo yêu cầu của bạn.
 

File đính kèm

  • tinhthudan.zip
    14.9 KB · Đọc: 206
minh đã thử bài giải của bạn rồi
cảm ơn bạn rất nhiều
nhưng bạn có thể viết thành 1 function không để tính tổng quát cho mọi trường hợp
 
hung1981 đã viết:
minh đã thử bài giải của bạn rồi
cảm ơn bạn rất nhiều
nhưng bạn có thể viết thành 1 function không để tính tổng quát cho mọi trường hợp
Bạn kiểm tra lại phần yêu cầu và phần công thức tính của bạn, tôi thấy 2 phần không kớp nhau. Bạn chỉnh lại, từ đó mới viết hàm được
 
phamduylong đã viết:
Bạn kiểm tra lại phần yêu cầu và phần công thức tính của bạn, tôi thấy 2 phần không kớp nhau. Bạn chỉnh lại, từ đó mới viết hàm được
hàm mình cần viết cũng không phức tạp lắm về nội dung nhưng khó về cách triển khai cú pháp VBA
mình có file kèm theo
mong các anh trong diễn đàn chỉ giúp
 

File đính kèm

  • thudan.xls
    17 KB · Đọc: 132
hung1981 đã viết:
mình làm trong excel hay dùng hàm if để tính thử dần một bài toán để thoả mãn giá trị "Q" cho trước nào đó
vd: if(Qtt<Q;hgt+0.00001;hgt-0.00001)
với điều kiện: gán trước hgt một giá trị, gán h = hgt, Q=f(h)
khi tính mình dùng phím F9 để chạy hàm if trên nhưng nó hay bị NUM bạn nào có thể giúp mình thành lập 1 macro thay thế cách làm trên không
xin cảm ơn rất nhiều
Mình muốn tìm được
mình có file đính kèm @#!^%
Viết hàm theo yêu cầu của bạn không khả thi, vì hàm trả về kết quả của một số đối số theo quy trình tính toán cụ thể chứ không thể tổng quát được !.
Nhưng Excel có công cụ Goal Seek tìm giá trị của một đối số để kết quả là một giá trị cho trước. Bạn xem ví dụ từ một đề bài tập:
Các đối số x, a, b, c, d cho trước. y=ax²+bx+c.
1. Tính y biết x=2, a=3, b=1, c=4 (kết quả y=18)
2. Tính x để y=20 ? (kết quả x=2,148741)
Giải:
Câu 1. nhập x=2, a=3, ... vào các ô theo thứ tự A2, B2, C2, D2. Tại ô E2 nhập công thức =B2*A2^2+C2*A2+D2 để tính y.
Câu 2. Chọn Tools > Goal Seek > nhập vào form Goal Seek:
- Set cell: E2 (ô chứa kết quả y)
- To value: 20 (y=20)
- By change cell: A2 (ô chứa giá trị x)
Chọn OK > xuất hiện form kết quả Goal seek Status > chọn OK
ô A2 được Goal Seek sửa lại là 2,148741 để y có kết quả là 20.
Chúc bạn thành công !
 
goal seek mình thử rồi
nhưng mình muốn tự động
cảm ơn bạn rất nhiều
để mình nghiên cứu xem tiếp thử
 
Web KT
Back
Top Bottom