Giriş
(5)

excel'de, belirli aralıktaki verileri saydırma.

killer
başlıktan da anlaşılacağı üzere, ekteki resimdeki tablodan, aynı isimleri 1er defa saydırmak suretiyle toplam değeri hesaplatmaya çalışıyorum. mesela resimde, 12 satırlık dizi isimleri var ama bunların içinde aynı olanları sadece 1er kez saydırırsak, toplamda 6 dizi ediyor.mesela =countif(A:A,"=Coup
başlıktan da anlaşılacağı üzere, ekteki resimdeki tablodan, aynı isimleri 1er defa saydırmak suretiyle toplam değeri hesaplatmaya çalışıyorum. mesela resimde, 12 satırlık dizi isimleri var ama bunların içinde aynı olanları sadece 1er kez saydırırsak, toplamda 6 dizi ediyor.

mesela =countif(A:A,"=Coupling") yazarsam 2 değeri döndürülüyor ama bana öyle bir kod lazım ki, bu sayma işlemini tüm A:A için yapacak ve aynı hücreler 1'den fazla sayılmayacak ki böylece elimde bulunan toplam dizi adetini hesaplatabileyim.
0
killer
(07.04.09)
A kolonunu sıralı varsayarsak; B kolonunda bu işi yapabilirsiniz. B2 ye "=IF(A2=A1;0;1)" yazıp bunları aşağıya devam ettirirseniz B kolonunun toplamı tekil toplamı verir.
0
surprise
(07.04.09)
anladım. teşekkürler cevap için yalnız bu şekilde yapınca 2 aşamalı oluyor. doğru işlem yaptırılıyor ama her seferinde liste sonuna kadar çekip uzatmak zahmetli olacak gibi. birde görsel açıdan pek hoşuma gitmedi. gerçi o sutün gizlenebiliyor ama dediğim gibi yeni tabloya yeni diziler ekledikçe, toplamın hesaplandığı o sütunu yeniden açıp son hücrelerini düzenlemek gerekiyor.

tek aşamalı olarak bu işlemi yapamaz mıyız yani? hazır fonksiyonları kullanarak, hatta ne bileyim, array formullerle fln olamaz mı? illa macro mu yazmak lazım? öyle bi cevap bekledim fakat yoksa da ne yapalım artık, mecburen bu şekilde yapacağım.
0
🌸killer
(07.04.09)
tam olarak istediğiniz değil ama belki yardımcı olur;

- alt + f11 yaparak vba düzenleyicisini açın
- insert -> module dedikten sonra aşağıdaki kodu yapıştırın

Function Benzersiz(Aralik As Range, i As Integer)
Application.Volatile
Dim ciftolmayan As New Collection
For Each ce In Aralik
On Error Resume Next
ciftolmayan.Add ce, CStr(ce)
Next ce

If i > ciftolmayan.Count Then
Benzersiz = ""
Else
Benzersiz = ciftolmayan(i)
End If
End Function

daha sonra vba düzenleyicisini kapatıp B1 hücresine aşağıdaki formülü yazıp tüm hücrelere kopyalayın

=Benzersiz($A$1:$A$5000;SATIR())

B1 den başlayarak verileri tekrar etmeden isteler.

not: formül ve kod excel.web.tr'den araktır. detaylı dosya için; www.excel.web.tr
0
mahallenindelisi
(07.04.09)
teşekkürler. bu macro da tam olarak istediğimi yapmıyor ama sanırım bunu biraz daha geliştirebilirim.
0
🌸killer
(07.04.09)
sağolun ama gerek kalmadı. mahallenindelisi'nin verdiği koddaki gereksiz yerleri silip, aşağıdaki işlemleri yaptığımda sorun çözüldü.

---------------------------------------------
Function Benzersiz(Aralik As Range)
Application.Volatile
Dim ciftolmayan As New Collection
For Each ce In Aralik
On Error Resume Next
ciftolmayan.Add ce, CStr(ce)
Next ce

Benzersiz = ciftolmayan.Count

End Function
---------------------------------------------

toplam dizi sayısını belirteceğim hücreye de:

"=Benzersiz($A$2:$A$1000)-1" yazmam yeterli oldu.

(dizi isimleri A2'den başladığı için)
böylece tabloya her eklediğim yeni satıra, yeni bir dizi ismi girdiğimde, toplam dizi adetini yazdırdığım hücre otomatik olarak güncelleniyor.

ilginize teşekkürler.
0
🌸killer
(07.04.09)
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler basond, compumaster, fraise, kibritsuyu, rakicandir
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır.