QUẢNG CÁO ĐẦU TRANG

Collapse

Thông báo

Collapse
No announcement yet.

Mỗi tuần một hàm trong Excel!

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • vietha209
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Mình đã xem lại code của PMXD và nhận thấy thừa ra 1 đoạn ở đầu, bạn dùng thử xem sao:
    Function TraBang2Chieu(ByVal GiaTriCot, ByVal GiaTriHang, VungChon As Range)
    Dim i As Long, j As Long
    Dim TangAnPha
    Dim NoiSuy1 As Double, NoiSuy2 As Double
    For i = 1 To UBound(VungChon.Value, 2)
    If (GiaTriCot - VungChon(1, i)) * (GiaTriCot - VungChon(1, i + 1)) <= 0 Then
    For j = 1 To UBound(VungChon.Value, 1) - 1
    If (GiaTriHang - VungChon(j, 1)) * (GiaTriHang - VungChon(j + 1, 1)) <= 0 Then

    TangAnPha = (VungChon(j, i + 1) - VungChon(j, i)) / (VungChon(1, i + 1) - VungChon(1, i))
    NoiSuy1 = VungChon(j, i) + (GiaTriCot - VungChon(1, i)) * TangAnPha

    TangAnPha = (VungChon(j + 1, i + 1) - VungChon(j + 1, i)) / (VungChon(1, i + 1) - VungChon(1, i))
    NoiSuy2 = VungChon(j + 1, i) + (GiaTriCot - VungChon(1, i)) * TangAnPha

    TangAnPha = (NoiSuy2 - NoiSuy1) / (VungChon(j + 1, 1) - VungChon(j, 1))
    TraBang2Chieu = NoiSuy1 + (GiaTriHang - VungChon(j, 1)) * TangAnPha
    GoTo Thoat:
    End If
    Next j
    End If
    Next i
    Thoat:
    End Function
    Tuy nhiên mình nhận thấy cách tra bảng này chỉ thực hiện nội suy thì được thôi, chứ ngoại suy thì not OK.
    Last edited by vietha209; 04-04-2007, 02:47 PM.

    Leave a comment:


  • xquang
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Bác PMXD hàm nội suy của bác gặp sự cố rồi (không biết có phải thế không!?). Mình nêu ra trường hợp nhé: khi bác nhập giá trị "Cot" là các số nằm trong cột đó (VD:cột là dãy số:0,1; 0,25; 0,5;0,75;1 thì nhập chính xác số có trong cột là 0,25) và khi nhập giá trị "Hang" là số không có trong Hàng đó (VD: Hàng có dãy 1;2;3;4 mà nhập số cần nội suy la 2,1) thì kết quả trả về 0. Đây là điều bất tiện trong phương pháp nội suy vì không đáp ứng tính bất kì của một hàm số nội suy. Mong Bác có câu trả lời giụp Nhân đây mình xin gửi lại file Bác đã post lên nhưng mình đã sửa giá trị tương ứng với trường hợp nêu trên để Bac tham khảo để giải quyết nhanh.
    Attached Files

    Leave a comment:


  • mibdhbk
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Các bác cho em hỏi bên VB một chut (em mới bắt đầu học nên còn kém lắm,các bác thông cảm nhé)
    1.Làm thế nào để xuất kết quả ra dưới dạng.txt ,dưới dạng.xls?
    2.Có phải VB không thể tạo được cơ sở dữ liệu (Đơn giản như 1 bảng tra chẳng hạn) mà bắt buộc phải dùng Access không?Kết nối như thế nào?

    Leave a comment:


  • minhtu
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Em tìm được cái này khá đúng với Smooth data của Excel, có thể dùng được.

    ------------------------------------
    <tiện thể Test thử attach picture xem được không >
    Attached Files

    Leave a comment:


  • minhtu
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Nguyên văn bởi PhanTuHuong
    Tú ơi!

    Anh rất cám ơn ông em. Nhưng anh muốn biết thuật toán của Smoothed line. Hình như nó cài theo dạng *.xla nên anh kô thể xem đc, em có cách naog giúp anh đc ko vẩy
    Đó là Excel 4.0, anh muốn xem thì vào Properties của ThisWorkbook đặt IsAddin=False, nhưng trong đó cũng không có thuật toán như anh cần đâu.
    Smooth line của Excel là dạng đồ thị bậc 3 đi qua các điểm kiểm soát, anh có thể xem nhiều dạng làm trơn khác trong các sách nói về Kỹ thuật đồ họa (Hermite, Bezier...). Em có 1 ít tài liệu nói về phần này, anh có thể tham khảo nhưng nó chưa thật chuẩn so với Smooth line của Excel.
    Attached Files

    Leave a comment:


  • minhtu
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Anh có thể tham khảo bài này:
    Generating Smooth Curves in Charts

    Leave a comment:


  • gnatsum
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    PMXD thân mến
    Tôi có đọc 2 hàm :Tra A,B,D và tính bản sàn
    Thế thì phức tạp quá.Hôm sau rãnh tôi post lên các bạn cho ý kiến nhé:
    1/ Hàm tra A,B,D toằn bộ có công thức rồi chỉ dùng excel thông thường là tính thẳng ra A,B,D và Rtc luôn
    2/ Bản sàn thì dùng một chút công thức nội suy thì ra luôn nội lực
    Đâu cần phức tạp đến thế

    Leave a comment:


  • ntl_dhxd47
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    chào các bác!
    Em rất muốn học VBA cho thằng Excel này
    thấy các bác post lên nhiều nhiều em thật sự rất vui
    Em có một thỉnh cầu nho nhỏ này:
    Đằng nào các bác cũng dành thời gian viết bài và post lên, vậy trong khi viết hàm nào đó các bác có thể giải thích rõ hơn một chút được không, để cho anh em nào (như em chẳng hạn) muốn đọc code cũng hiểu được nhiều, rất cảm ơn các bác

    Leave a comment:


  • PMXD
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Nguyên văn bởi ttkh
    Xin chỉ giúp. Tôi gặp vấn đề sau : Khi tạo một macro
    Ví dụ
    A1 =6
    B1 = 7
    C1 = 8
    D1 = A1+B1
    ENTER
    Thì ta có macro
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro recorded 9/2/2005 by user02
    '

    '
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
    Range("D2").Select
    End Sub
    Vậy thì bằng cách nào để cho "Range("D2").Select "không phải là D2, vì khi thực hiện macro này thì kết thúc lệnh ô hiện hành là ô D2 ( cho dù vị trí thực hiện nào đi nữa).
    Có nghĩa là ta phải thay đổi dòng Range("D2").Select "như thế nào để nó không phải là địa chỉ tuyệt đối như vậy. Ví dụ thực hiện lệnh ở ô D3 (sử dụng macro trên )thì kết thúc lệnh ô hiện hành ở D4, chứ không phải là D2
    Nếu bạn không muốn nó select tại địa chỉ tuyệt đối là "D2" thì
    1- Bỏ dòng sau đây đi Range("D2").Select
    2- Thay giá trị "D2" bằng giá trị khác qui định trong biến
    Ví dụ:
    Dim AddCell as long
    AddCell=3
    Range("D" & AddCell ).Select

    Chúc bạn thành công

    Leave a comment:


  • leâ thanh
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    cam on cac huynh da post len cac ham excel nhe,tui em hoc hoi duoc nhieu lam,

    Leave a comment:


  • trlam
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    http://www.elcomsoft.com/prs.html
    pass: AOPRP-COMM-XXDNN-27747-BHJGY-55343

    Leave a comment:


  • touchstone
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Nguyên văn bởi shinichi
    bác ducxd bẻ khóa bằng cài gì vậy , chỉ giúp em với


    chao shinichi. Be khoa Excel (Unprotect Sheet and VBA Password) không gì tốt hơn Advanced Office Password Recovery (AOPR) đâu. Hôm vừa rồi tôi ra dơwnload về dùng rất tốt. Hiện tại tôi không mang theo chương trình đó ở đây. Để khi nào đó tôi sẽ upload cho các bạn dùng thử nhé.

    Leave a comment:


  • Kidsmart1981
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Tôi không trả lời trực tiếp vấn đề của bạn(thực tình tôi ko thích....viết macro Excel), tôi nói qua về mô hình Excel Object Mode để bạn tham khảo nha:
    - Trong 1 thể hiên của Excel(một Excel.Application) thì ActiveCell là duy nhất tại một thời điểm(nó có thể ở Workbook nào đó, Sheet nào đó...) để nhận thông tin nhập vào từ bàn phím của một thời điểm.
    - Các đối tượng như worksheet, activecell, row, column....đều có thể chuyển kiểu trực tiếp sang Excel.Range.
    - Cách sử dụng địa chỉ tương đối tôi hay dùng là: Đánh địa chỉ dựa trên ActiveCell hiện tại; hoặc sử dụng Offset(i, j).
    Tôi minh họa một ví dụ:
    Excel.Range rng1 = Excel.Application.ActiveCell;
    Excel.Range rng2 = rng1.Cells[2,3];
    //Trong ví dụ trên thì rng1 là ActiveCell hiện tại (phụ thuộc vào người sử dụng và người lập trình...) và nó sẽ có địa chỉ là [1, 1] trong cách đánh địa chỉ tương đối trên và rng2 sẽ là Cells[2, 3] dựa trên mốc [1, 1] ta vừa đánh dấu.

    Leave a comment:


  • ttkh
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Xin chỉ giúp. Tôi gặp vấn đề sau : Khi tạo một macro
    Ví dụ
    A1 =6
    B1 = 7
    C1 = 8
    D1 = A1+B1
    ENTER
    Thì ta có macro
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro recorded 9/2/2005 by user02
    '

    '
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
    Range("D2").Select
    End Sub
    Vậy thì bằng cách nào để cho "Range("D2").Select "không phải là D2, vì khi thực hiện macro này thì kết thúc lệnh ô hiện hành là ô D2 ( cho dù vị trí thực hiện nào đi nữa).
    Có nghĩa là ta phải thay đổi dòng Range("D2").Select "như thế nào để nó không phải là địa chỉ tuyệt đối như vậy. Ví dụ thực hiện lệnh ở ô D3 (sử dụng macro trên )thì kết thúc lệnh ô hiện hành ở D4, chứ không phải là D2

    Leave a comment:


  • HPA
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    to nvd dg
    neu ban viet cac ham do trong VBA cua excel thi ban chi can ghi lai o dang *.xla
    sau do ban addin vao excel thi sau nay ban co the dung ham do chotat ca cac wb nhu ban mong muon.

    Leave a comment:

Working...
X