Function K_TOPLA(Alan As Range, Optional Kriter As Boolean = True) As Double
Dim Veri As Range
Application.Volatile True
With CreateObject("VBScript.RegExp")
.IgnoreCase = True
.Global = True
.Pattern = "[^\d-,]+"
For Each Veri In Alan
If IsNumeric(.Replace(Veri, "")) Then
If Kriter = True Then
K_TOPLA = K_TOPLA + .Replace(Veri, "")
Else
K_TOPLA = K_TOPLA + 1
End If
End If
Next
End With
End Function
Bu gördüğünüz kod içinde her hangi bir hücre içerisine yazılacak olan PÇ2 veya PÇ1 gibi sayı fark etmeksizin ama sadece PÇ nin yanında olacak rakamları saymayacak şekilde nasıl düzenlerim.
Çıkartma İşlemi
Çalışmanızı ekleyip daha ayrıntılı 1 açıklama yapar mısınız?
(28/12/2021, 11:31)berduş yazdı: Çalışmanızı ekleyip daha ayrıntılı 1 açıklama yapar mısınız?
Kavaklıdere sayfasında ilk 3 4 personelde PÇ2 PÇ3 PÇ4 PÇ5 yazıyor K_TOPLA(D2:AH2;1) diye formül oluşturdum bunda ise mesai hesaplamak için yaptım AS sütununda FMS fazla mesai yeri var oraya PÇ Yazılan Mesaileri eklemek istemiyorum çünkü PÇ fazla mesai farklı hesaplandığı için onun yeri ayrı oraya zaten yazıyor. FMS Bölümünde PÇ hesaplamasın geri kalanları hesaplasın istiyorum.
PÇ harflerini almasın sadece sayıları mı alsın istiyorsunuz acaba eğer öyleyse Kavaklıdere sayfasında boş bir hücreye bu formülü yazıp deneyebilirisiniz.
=PARÇAAL(H2;3;10)
=PARÇAAL(H2;3;10)
Sanırım bu sefer anladım ne yapmak istediğinizi
Modülünüzde bulunan kodu aşağıdaki ile değiştirirmisiniz.
Modülünüzde bulunan kodu aşağıdaki ile değiştirirmisiniz.
Kod:
Function K_TOPLA(Alan As Range, Optional Kriter As Boolean = True) As Double
Dim Veri As Range
Application.Volatile True
With CreateObject("VBScript.RegExp")
.IgnoreCase = True
.Global = True
.Pattern = "[^0-9 /[PÇ]+"
For Each Veri In Alan
If IsNumeric(.Replace(Veri, "")) Then
If Kriter = True Then
K_TOPLA = K_TOPLA + .Replace(Veri, "")
Else
K_TOPLA = K_TOPLA
End If
End If
Next
End With
End Function
Konuyu Okuyanlar: 2 Ziyaretçi