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

  • PMXD
    replied
    Cảm ơn anh Huy đã khích lệ động viên để PMXD tôi phấn khích để tiếp tục công việc post bài, hy vọng anh duy trì chủ đề này trong mỗi tuần.
    Sau khi đưa ra hàm nội suy đầu tiên, tôi thấy anh em trong diễn đàn có vài người vẫn thắc mắc về cách sử dụng. Hôm nay, tôi sẽ gửi cho anh em một bảng Excel ví dụ cụ thể để mọi người cùng tham khảo và sử dụng. Mong anh em sử dụng và đóng góp ý kiến.
    Attached Files

    Leave a comment:


  • ketcaucdc
    replied
    Thay mặt diễn đàn, xin cảm ơn các chú PMXD, CNPM và các thành viên khác đã, đang và sẽ chia sẻ các hàm VBA lên cho các anh em còn chưa biết học tập .
    Mỗi tuần được một hàm của PMXD thì quý hoá quá! Còn chú CNPM thì mấy tuần một hàm đấy ?

    Leave a comment:


  • Gary killer
    replied
    Nguyên văn bởi PMXD
    Gửi GK:
    Bạn có thể dùng chức năng Zoomin của Visual Studio để làm việc này


    Hình như trong diễn đàn có rất ít người quan tâm đến VBA thì phải
    Ko fải đâu anh, rất nhiều người quan tâm đến, mỗi tội là khả năng kiến thức về VBA có hạn nên chỉ dừng ở mức đọc, tham khảo, học tập, hỏi .... chứ chưa đủ trình để pót bài (like me ). Mong các anh tiếp tục phát triển thêm chủ đề này. Hàng tuần vẫn ngóng các hàm excel mới

    Leave a comment:


  • PMXD
    replied
    Gửi GK:
    Bạn có thể dùng chức năng Zoomin của Visual Studio để làm việc này


    Hình như trong diễn đàn có rất ít người quan tâm đến VBA thì phải

    Leave a comment:


  • Gary killer
    replied
    Cho em hỏi là có phần mềm nào phóng to 1 vùng màn hình lên fullscreen ko ah? Chẳng hạn như khi đang chiếu PowerPoint muốn phóng một vùng lên nhìn cho rõ.

    Xin lỗi, em không biết pót bài này vào đâu cả nên pót vào đây, các anh thông cảm.

    Leave a comment:


  • PMXD
    replied
    Tôi sẽ cố gắng để mỗi tuần gửi một hàm trong Excel do tôi viết. Những hàm này tôi sẽ Open code và hướng dẫn mọi người cùng sử dụng hàm. Nếu ai biết sâu về VBA thì tham khảo thêm, còn ai biết ít thì cứ dùng thôi, không cần đọc hiểu.
    Những dòng mã trong VBA cần chú ý khi quét Virus bằng BKAV của bác Quảng sẽ bị tiêu hết, hãy nén các file này lại rồi Scan là Ok thôi.
    Gửi CNPM:
    bạn cứ thử dùng hàm trabang của tôi sẽ thấy ngay được việc nội suy 1 hay 2 chiều đều được, chúc vui vẻ nhé.

    Leave a comment:


  • CNPM
    replied
    Nhiệt liệt ủng hộ PMXD mỗi tuần viết một bài VBA

    >>> Vẫn không hiểu ý bác PMXD như thế nào. Bác code lại gửi lên cho anh em tham khảo đi.

    >>> Thực chất thuật toán của hai hàm PMXDCNPM Viết đều như nhau. Nhưng hai cách viết khác nhau, gửi lên để mọi người tham khảo thôi.

    >>> Rất nhiệt liệt hưởng việc bác PMXD mỗi tuần gửi một bài. Nhưng xin góp ý là bác gửi bài dễ thôi (Ví dụ như bài vừa rồi), chứ khó quá thì mọi người đọc chẳng hiểu gì đâu. Mục đích là để giới thiệu với mọi người cách truy xuất, trích dữ liệu trong excel và biết cách sử dụng các hàm VB cũng như hàm trong excel. Ngày trước CNPM cũng làm một ít nhưng không may bị bác Nguyễn Tử Quảng lấy hết lúc nào không biết , Nên giờ chẳng còn file nào cả. Hôm qua thấy bác gửi Function nội suy nên góp vui với bác thế thôi.
    ---------------------------------------------------------------
    ---------------------------------------------------------------
    Đây là chương trình cắt ảnh từ màn hình, dùng rất hay. Mọi người download về mà dùng.
    =================================================
    CNPM

    Leave a comment:


  • PMXD
    replied
    Gửi CNPM

    Hàm của bạn và hàm của tôi bản chất là giống nhau, nhưng tôi xin góp ý về cách sử dụng để có thể dùng được cả 1 và 2 chiều cho cùng một hàm:
    1- Vòng lặp For của bạn cứ cho chạy từ 1 đến n(hoặc m)
    2- Giá trị đầu tiên của mỗi hàng và mỗi cột được lấy làm tiêu chí so sánh. Trường hợp hàng đầu tiên(Hoặc cột đầu tiên) không phải là số(Ví dụ là kí tự) thì ta c tự đánh số cho chúng.

    '=======================VÍ DỤ
    Sau đây là ví dụ về tra bảng Xác định Các hệ số A,B, D trong tính toán Sức chịu tải của nền đất

    Bảng số liệu như sau: (Xem file Đính kèm)

    Và trên địa chỉ hàm ta viết:

    =trabang([Hang],[Cot],Data!$A$25:$D$49)

    Ở ví dụ này, vì tra bảng 1 chiều nên [Hàng]=1 hoặc 2 hoặc 3 tương ứng với việc tìm A,B,D.
    Như vậy hàm sẽ tra được cả 1 chiều lẫn 2 chiều
    Attached Files

    Leave a comment:


  • CNPM
    replied
    Góp vui cùng PMXD

    Đây là bản nội suy của tui, Tuy nhiên nó chưa hoàn chỉnh !

    ==================================================
    Function Noisuy(Hang, Cot As Double, ByVal bangns As Range) As Double
    ' Ham sau cho phep noi suy ca bang mot chieu va hai chieu
    Dim Tg1, Tg2, Delta As Double
    Dim m As Long ' so hang
    Dim n As Long ' so cot
    Dim i, j As Long
    Dim Found As Boolean

    n = bangns.Columns.Count
    m = bangns.Rows.Count
    Found = False

    ' bay gio chung ta co mot mang hai chieu kich thuoc m x n

    For j = 2 To n - 1
    If (bangns(1, j) <= Cot) And (bangns(1, j + 1) >= Cot) Then
    Delta = (Cot - bangns(1, j)) / (bangns(1, j + 1) - bangns(1, j))
    Found = True

    Exit For
    End If
    Next j

    If Not Found Then
    MsgBox ("So noi suy nam ngoai Hang cua BangNS")
    End
    End If

    For i = 2 To m - 1
    If (bangns(i, 1) <= Hang) And (bangns(i + 1, 1) >= Hang) Then
    Tg1 = bangns(i, j) + (bangns(i, j + 1) - bangns(i, j)) * Delta
    Tg2 = bangns(i + 1, j) + (bangns(i + 1, j + 1) - bangns(i + 1, j)) * Delta
    Delta = (Hang - bangns(i, 1)) / (bangns(i + 1, 1) - bangns(i, 1))
    Noisuy = Tg1 + (Tg2 - Tg1) * Delta
    Found = True
    Exit For
    End If
    Next i

    If Not Found Then
    MsgBox ("So noi suy nam ngoai cot cua BangNS")
    End
    End If


    End Function

    ==================================================

    Nhưng đây chỉ là nội suy hai chiều, nếu là nội suy một chiều thì ta chỉ việc kiểm tra lai số hàng và số cột (bằng 2), và viết thêm code cho nội suy một cột.
    ------------------
    Tuy nhiên chúng ta có thể nghĩ ra cách khác như sau :


    Thông thường nếu bangns là kiểu array (kiểu mảng) ta thêm đoạn sau vào chương trình
    .......Phần bên trên của hàm .......
    n = bangns.Columns.Count
    m = bangns.Rows.Count
    Found = False

    For j = 1 To n
    Bangns(m + 1, j) = Bangns(m, j)
    Next j
    For i = 1 To m
    Bangns(i, n + 1) = Bangns(i, n)
    Next i

    ' bay gio chung ta co mot mang hai chieu kich thuoc m x n

    For j = 2 To n - 1

    ......Phần tiếp của hàm.......

    Có nghĩa là ta thêm một hàng và một cột vào sau cùng của mảng, hang cột mới thêm vào có giá trị bằng hàng cột sau cùng của mảng.
    Sau đó chạy bình thường, như thế là ta có thể nội suy được cả hai chiều lẫn một chiều. Tuy nhiên Bangns là kiểu range, do vậy ta không thể gán giá trị bangns được mà chỉ lấy được giá trị từ bangns mà thôi. Ai có cao kiến gì để có thể dùng thuật toán trên sửa nội suy hai chiều thành nội suy cả 1 chiều và hai chiều.
    ------------------------
    PMXD có ý kiến gì không.
    =================================================
    Last edited by CNPM; 17-11-2004, 12:38 AM.

    Leave a comment:


  • reivietnam
    replied
    Thì Mấy Anh Em đang Chờ Xem đây !!!

    Viết Nhiều Lên đi......ủng Hộ Cả Hai Tay Mà......ai Cũng Muốn Học Hỏi ở Bác Hết...vậy Nha

    Leave a comment:


  • PMXD
    started a topic Mỗi tuần một hàm trong Excel!

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

    Chào các anh em trong diễn đàn!
    Từ ngày hôm nay, tôi sẽ cố gắng post mỗi tuần một hàm Excel mà tôi đã từng dùng để tính toán thiết kế. Ai ủng hộ tôi xin hãy lên tiếng cho diễn đàn them khí thế!

    '==================HÀM SỐ 1===========================
    ' NỘI SUY MỘT BẢNG THEO GIÁ TRỊ
    '====================================================

    Function TraBang2Chieu(ByVal Hang, ByVal Cot, 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) ' Theo phuong ngang
    If Hang = VungChon(1, i) Then
    For j = 1 To UBound(VungChon.Value, 1) - 1
    If (Cot - VungChon(j, 1)) * (Cot - VungChon(j + 1, 1)) <= 0 Then
    TangAnPha = (VungChon(j + 1, i) - VungChon(j, i)) / (VungChon(j + 1, 1) - VungChon(j, 1))
    TraBang2Chieu = VungChon(j, i) + (Cot - VungChon(j, 1)) * TangAnPha
    GoTo Thoat:
    End If
    Next j
    ElseIf (Hang - VungChon(1, i)) * (Hang - VungChon(1, i + 1)) < 0 Then
    For j = 1 To UBound(VungChon.Value, 1) - 1
    If (Cot - VungChon(j, 1)) * (Cot - 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) + (Hang - 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) + (Hang - VungChon(1, i)) * TangAnPha

    TangAnPha = (NoiSuy2 - NoiSuy1) / (VungChon(j + 1, 1) - VungChon(j, 1))
    TraBang2Chieu = NoiSuy1 + (Cot - VungChon(j, 1)) * TangAnPha
    GoTo Thoat:
    End If
    Next j
    End If
    Next i

    Thoat:
    'TraBang = UBound(VungChon.Value, 2)
    End Function

    '=====================================================

    Mời các bác Copy hàm này vào Excel và sử dụng theo từng bước như sau:

    1- Mở Excel
    2- Nhấn Ctrl+F11
    3- Insert 1 Module trong môi trường VBA
    4- Copy hàm bên trên vào
    5- Sử dụng như 1 hàm Excel thông thường với 3 tham số:

    + Giá trị của hàng
    + Giá trị của cột
    + Vùng giá trị của bảng

    Ghi chú: Bác nào vẫn còn lơ mơ thì cứ A lô nhé
    '===============================

    Nguyễn Việt Anh
    Phòng KCXD- IBST
    047544277
deneme bonusu veren siteler deneme bonusu deneme bonusu veren siteler
bahis siteleri
hd sex video
Mobilbahis
antalya escort bayan
gaziantep escort
gaziantep escort
bonus veren siteler
pinbahis pinbahis dizitune.com
bostanci escort pendik escort
İstanbul Escort
Car Fuck XXX Мужик отчаянно долбит в жопу шмеля sexo gay gratis xxxx
betbonusking.com deneme bonusu
deneme bonusu veren siteler deneme bonusu veren siteler bonus veren siteler
ümraniye escort sancaktepe escort
quixproc.com
Small tits girlfriend fucking pussy xxx com hindi Beatriz is young a new in porn Real adult sex with teen babe xxx
casino siteleri
deneme bonusu veren siteler
alanya escort
mersin escort alanya escort gaziantep escort
deneme bonusu veren siteler deneme bonusu veren siteler
buy.fans
mobilbahis rokubet
bahis siteleri
deneme bonusu veren siteler
bonus veren siteler bonus veren siteler
deneme bonusu bonus veren siteler
deneme bonusu veren siteler
deneme bonusu veren siteler
deneme bonusu
redriverlanes.com
casino siteleri
bodrum escort
streameast
deneme bonusu veren siteler
alanya escort gaziantep escort gaziantep escort gaziantep escort
bahis siteleri
casibom betturkey
Working...
X