GPE Phát hành sách: "Lập trình VBA trong Excel cho người mới bắt đầu - 2014" | "VBA trong Excel - Cải thiện và tăng tốc - 2013"
Hiển thị kết quả tìm kiếm từ 1 đến 9 trên tổng số: 9

Ðề tài: hàm if trong excel

  1. #1

    hàm if trong excel

    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
    Tập tin đính kèm Tập tin đính kèm

  2. #2
    sao không có ai giúp mình thế

  3. #3

  4. #4
    Tham gia ngày
    12 2006
    Nơi Cư Ngụ
    Đồng Tháp
    Bài gởi
    924
    Cảm ơn
    1,233
    Được cảm ơn 2,172 lần trong 661 bài viết
    Trích Nguyên văn bởi hung1981
    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

    Code:
    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.
    Tập tin đính kèm Tập tin đính kèm
    pham_duy_long@yahoo.com
    DĐ: 0918 975 460

  5. Thành viên sau cảm ơn phamduylong về bài viết này:


  6. #5
    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

  7. #6
    Tham gia ngày
    12 2006
    Nơi Cư Ngụ
    Đồng Tháp
    Bài gởi
    924
    Cảm ơn
    1,233
    Được cảm ơn 2,172 lần trong 661 bài viết
    Trích Nguyên văn bởi hung1981
    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
    pham_duy_long@yahoo.com
    DĐ: 0918 975 460

  8. #7
    Trích Nguyên văn bởi phamduylong
    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
    Tập tin đính kèm Tập tin đính kèm

  9. #8
    Tham gia ngày
    12 2006
    Nơi Cư Ngụ
    Đồng Tháp
    Bài gởi
    924
    Cảm ơn
    1,233
    Được cảm ơn 2,172 lần trong 661 bài viết
    Trích Nguyên văn bởi hung1981
    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 !
    pham_duy_long@yahoo.com
    DĐ: 0918 975 460

  10. Thành viên sau cảm ơn phamduylong về bài viết này:


  11. #9
    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ử

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

Đề tài tương tự

  1. Lỗi trong "các tập tin đi kèm trong sách Lập trình VBA trong Excel tái bản năm 2012
    Viết bởi siwtom trong chuyên mục Lập Trình với Excel
    Trả lời: 0
    Bài mới gởi: 06-07-12, 05:53 AM
  2. VBA trong Excel 2003 không chạy được trong Excel 2010
    Viết bởi ngthethat trong chuyên mục Lập Trình với Excel
    Trả lời: 1
    Bài mới gởi: 22-06-12, 10:01 PM
  3. Chức năng Calendar không sử dụng được trong excel 2007 và một vài bản excel 2003?
    Viết bởi khacbao72 trong chuyên mục Hỏi đáp về VBA - Macro
    Trả lời: 0
    Bài mới gởi: 02-02-12, 07:09 PM
  4. Hỏi về sự khác nhau giữa Macro, code và hàm trong excel. Excel và VBA
    Viết bởi vdtam_08 trong chuyên mục Lập Trình với Excel
    Trả lời: 4
    Bài mới gởi: 12-07-11, 10:22 PM
  5. File bị hỏng định dạng excel 2003, không save lại được trong excel 2007
    Viết bởi chiphoiloithoi trong chuyên mục Những vấn đề chung
    Trả lời: 0
    Bài mới gởi: 22-04-11, 11:36 AM

Bookmarks

Bookmarks

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.
  •  

Mudim v0.8 Tắt VNI Telex Viqr Tổng hợp
Chính tả Bỏ dấu kiểu mới  [Bật/Tắt (F9)]