• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Bir hücrede karışık halde bulunan veriden rakam ve sayıyı ayrı ayrı sayma

  • Konbuyu başlatan Konbuyu başlatan ilunga
  • Başlangıç tarihi Başlangıç tarihi
Katılım
2 Ocak 2023
Mesajlar
4
Excel Vers. ve Dili
2016
Merhaba,
Bir sütundaki her hücrede rakam ve metin olarak belirli bir düzen içinde bulunmayan veriler var. Örneğin (ali,10, 1,3-5, avs1,12) buradan "10" ile "1" i tüm sütunda ayrı ayrı saymam gerekiyor. Ancak 1 i saydırmam gerektiğinde verinin içinde 1 olmayıp, 10 olduğunda 1 varmış gibi sayıyor. Özetle bu karışık verinin içinde 1 i saysın fakat 10'u saymasın istiyorum. nasıl yapabilirim?
Cevap verenlere şimdiden teşekkürler...
 
Verinizin A1 hücresinde olduğunu varsaydım.

Deneyip sonucu bildirirseniz sevinirim.

Sürümünüz Türkçe ise önerdiğim formülü çevirmelisiniz.

C++:
=LEN(A1&",")-LEN(SUBSTITUTE(A1&",";"1,";","))
 
UZUNLUK(A2&",")-UZUNLUK(YERİNEKOY(A2&",";"1,";",")) şeklinde Türkçe'ye çevirdim. Verdiğim örneğe uyguladığımızda (ali,10, 1,3-5, avs1,12) sonucu doğru çıkarmakla birlikte formül çok spesifik kalıyor. Yani 1 yerine 10'u veya bir hücredeki veriyi (+B1 hücresi gibi) aramak istediğimizde veya sadece
(1-6) şeklinde veri içeren bir hücrede sonucu çıkarmıyor. Burdaki yerinekoy (SUBSTITUTE) formülünde değiştirilmek istenen metni "1," şeklinde yapmak yerine her hücreye uygun olacak şekilde ( "*"&B1&"*") joker karakter kullanabilirsek sorunu çözebilecez gibi ama bunu yerine koy formülünde yapamıyoruz.

İlginiz ve emeğiniz için teşekkürler...
 
Siz bir adet örnek veri paylaştığınız için tam formül öneremiyorum. Asıl dosyanızın yapısına göre 10-15 farklı örnek veri içeren bir dosya paylaşırsanız formül-makro çözüm önerileri olabilir.
 
Aşağıda örnek amaçlı bir tablo gönderiyorum. Veriler sütunundaki sayıları sağdaki (1,2,3... ) karşılık gelen sütunların altına kaç tane oldukları yazmamız gerekiyor. Sorun 1 veya 2 gibi rakamlar ile 10, 11'i veya 20,21 gibi sayıları ayıramıyoruz.

Veriler

1

2

10

4

20

21

7

15

16

11

1-6





















1,10,2





















1.5.6.8.20





















1+8+4, vs3





















1*6*10-12





















1.5.6.8.20, ali





















1+6+12, ahmet





















11-27-21





















12/16, kitap10





















ali,10, 1,3-5, avs1,12




















 
Verdiğiniz örneğe göre aşağıdaki KTF daha uygun görünüyor.

=NUMBER_COUNT($A2;B$1)

C++:
Option Explicit

Function NUMBER_COUNT(Rng As Range, Criteria As Range)
    Dim My_Text As Object, My_Number As Object
    
    Application.Volatile True
        
    With VBA.CreateObject("VBScript.RegExp")
        .Pattern = "\d+"
        .Global = True
        Set My_Text = .Execute(Rng.Value)
        For Each My_Number In My_Text
            If CDbl(My_Number) = Criteria.Value Then
                NUMBER_COUNT = NUMBER_COUNT + 1
            End If
        Next
    End With
End Function

Untitled.png


241860
 

Ekli dosyalar

Tamam hocam bu şekilde denedim çalışıyor. Tekrar teşekkür ederim. Emeğinize sağlık...
 
Geri
Üst