Renkli Hücreleri Gruplayıp Saydırma

Çözüldü Renkli Hücreleri Gruplayıp Saydırma

  • Konuyu başlatan Konuyu başlatan Yitto
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Yitto

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba Arkadaşlar;

Anlık sıcaklık ölçüm cihazım çalışmaya başladıktan sonra her 2 saniyede 1 kayıt yapıyor ve ölçüm olmayan zamanları -22 diye gösteriyor.

-Cihazdan veriyi excele atıyorum. Daha sonra düzenle makrosu ile verileri düzenleyip fazlalıkları ve istediğim aralıktaki sıcaklıkları filtreliyorum. Resimde 200-500 derece aralıklarını filtrele ve sarıya boya yaptım. Daha sonra Sarı renkte olanları saydır dediğimde bana kaç adet istediğim aralıkta veri varsa onları sayıyor. Fakat cihaz her sıcaklık ölçtüğünde ortalama 5 saniyede ölçüm yapabiliyor. 2 kayıt veya 3 kayıt yapıyor. Sıcaklık devamlı değiştiği için 2 yada 3 veri kayda girmiş oluyor. Benim sarıları saydırmam hatalı oluyor.

Yardım istediğim konu şu;
c sütununda sarı renkli hücre varsa b sütunundaki ardışık olanları gruplamak ve veriyi oradan almak .Başka bir yöntemde olabilir .

Yardımcı olursanız teşekkür ederim.

1610181776050.webp
 
Moderatörün son düzenlenenleri:
Merhaba Arkadaşlar;

Anlık sıcaklık ölçüm cihazım çalışmaya başladıktan sonra her 2 saniyede 1 kayıt yapıyor ve ölçüm olmayan zamanları -22 diye gösteriyor.

-Cihazdan veriyi excele atıyorum. Daha sonra düzenle makrosu ile verileri düzenleyip fazlalıkları ve istediğim aralıktaki sıcaklıkları filtreliyorum. Resimde 200-500 derece aralıklarını filtrele ve sarıya boya yaptım. Daha sonra Sarı renkte olanları saydır dediğimde bana kaç adet istediğim aralıkta veri varsa onları sayıyor. Fakat cihaz her sıcaklık ölçtüğünde ortalama 5 saniyede ölçüm yapabiliyor. 2 kayıt veya 3 kayıt yapıyor. Sıcaklık devamlı değiştiği için 2 yada 3 veri kayda girmiş oluyor. Benim sarıları saydırmam hatalı oluyor.

Yardım istediğim konu şu;
c sütununda sarı renkli hücre varsa b sütunundaki ardışık olanları gruplamak ve veriyi oradan almak .Başka bir yöntemde olabilir .

Yardımcı olursanız teşekkür ederim.

1610181776050.png
Örnek Ekledim.
 

Ekli dosyalar

Kullanıcı tanımlı fonksiyon eklenerek çözüm yapılmıştır. Ekli dosyayı inceleyiniz.
Not: D4 hücresine formül uygulanmıştır.
İlgili kod:
[REPLYANDTHANKS]
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)
[/REPLYANDTHANKS]
 

Ekli dosyalar

  • 1610288903051.webp
    1610288903051.webp
    30.7 KB · Görüntüleme: 5
Kodu kısaca açıklayayım.
for each i in aralik
kısmında ilgili seçilen aralıkta her bir satırı sırasıyla ele alıyor.

if i<>-22 and not isempty(i) then k=k+1
kodu ile ilgili satırda ki değer eğer -22 den farklı ise ve boş değilse k değerini ( ben kontrol kelimesinin baş harfi olarak aldım. Hangi durumda sayacağını belirlemek amacım ) 1 artır. Bu durumda k değeri 1 olur. Buradaki kontrol noktamızı k değeri 1 ise sayma işlemi için değer ifadesini 1 artırmak. 1.den küçük yada büyükse sayma işlemi yapmıyor.

If k = 1 Then deger = deger + 1
burada ilgili sayma işlemi sayılıyor. Öncesinde sayma işleminin olmasını için koşullara göre k değerini artırmıştık zaten. Bundan sonra gelen değerler sağlasa da k değeri 1 olmayacağı için sayma işlemi yapılmayacak. Sayma işleminin olması için önce -22 değerini görüp k değeri 0 olmalı ardından ölçülen değer gelmeli ki k değeri 1 artırılıp sayma işlemi yapılsın.

If i = -22 Then k = 0
Yukarıda açıklamayı yaptım aslında. sayma işleminin -22 olduğunda farklı bir ölçüm yapıldığını anlıyoruz. Peşpeşe ölçümleri tek olarak ele almak için arada -22 değeri geçmeli. Geçtiğinde k=0 ile k değerini sıfırlayıp ilk sayı karşılaşmasında k değerini 1 artırıyoruz. Bu şekilde ilgili sayma işlemi gerçekleşmiş oluyor.


Kısaca -22 değerinden farklı olarak peşpeşe gelen değerleri bir defa sayıp -22 ile farklı ölçümleri ayırt etmektedir.
 
Teşekkür ederim Hocam.Ellerinize sağlık .

Kontrol amaçlı verileri manuel saydığımda 40 adet çıktı. Say komutu 45 adet bulmuş onu nasıl düzeltirim ona bakıyorum. Fikriniz var mıdır.?
 
Teşekkür ederim Hocam.Ellerinize sağlık .

Kontrol amaçlı verileri manuel saydığımda 40 adet çıktı. Say komutu 45 adet bulmuş onu nasıl düzeltirim ona bakıyorum. Fikriniz var mıdır.?
@cakarem ve @Yitto
Selamlar,
Affınıza sığınarak, mesajı okuyunca merak ettiğim için yazıyorum. Kusuruma bakmayın.
Kendi analizimi yazmak istedim.
Boş bir hücreye
=TOPLA.ÇARPIM((C5:C1981<>"")*(C5:C1981>0)*((C4:C1980<0)+(C4:C1980="")))
formülünü yazarak, > 0 olan ve ister Tek değer isterse peş peşe > 0 olan değerleri tek değer olarak saydırdığımda
ne 40 ve ne de 45 çıktı.... Bendeki sonuç : 42

Böyle olunca da değerlere baktım.
Sarı renk ile boyamanın mantığını anlayamadım.
* Satır No.1580 de Tekli olarak 85 değeri var ve Sarı renk YOK
* Satır No.1615 de Tekli olarak 366 değeri var ve Sarı renk VAR
* Satır No.1742 de Tekli olarak 292 değeri var ve Sarı renk VAR
* Satır No.1766 da Tekli olarak 554 değeri var ve Sarı renk VAR
* Satır No.1782 ve 1783 de 34 ve 35 değerleri var ve Sarı renk YOK

Sarı renk yok ları devre dışı bırakırsak sayım sonucu 40 oluyor.
Fakat neye göre (örneğin > 100 gibi bir baz mı var acaba) sarı renklendirilmiş anlamlandıramadım.

Yanlış anlaşılmak istemiyorum... Tekrardan kusuruma bakmayın...
 
Resimde 200-500 derece aralıklarını filtrele ve sarıya boya yaptım.
Galiba bu aralıktakileri saydığınız için sadece 40 değer buluyorsunuz. Ben sadece -22 den farklı ve boş olmayanları saydırmıştım. Gerçi siz de yanlış saymış oluyorsunuz bir tane 500 den büyük değeri sarıya boyamışsınız. Doğru sonuç39 olmalı.

@52779 hocam estagfurullah kusurluk bir durum söz konusu değil. Belli bir aralıkta ki değerleri saymak istiyor. Ben ilk kodlama da göz ardı etmişim ve küçük bir algoritmik hata olmuş. Şimdi farkettim.

@Yitto kodu aşağıdaki gibi güncelleyiniz. İstenilen sonuca ulaşabilirsiniz.
[REPLYANDTHANKS]
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)
[/REPLYANDTHANKS]
 
Resimde 200-500 derece aralıklarını filtrele ve sarıya boya yaptım
Son zamanlarda, dikkatsizliğim üzerimde...
Ya fark etmiyorum ya da geç fark ediyorum... Önceki mesajımda da bu kriterden söz ediyordum..
@cakarem e teşekkür ediyorum. Bu kriteri fark edebilmemi sağladığı için.

Galiba bu aralıktakileri saydığınız için sadece 40 değer buluyorsunuz. Ben sadece -22 den farklı ve boş olmayanları saydırmıştım. Gerçi siz de yanlış saymış oluyorsunuz bir tane 500 den büyük değeri sarıya boyamışsınız. Doğru sonuç39 olmalı.

Evet. Ben de formül ile 39 buluyorum...
Formül :

=TOPLA.ÇARPIM((C5:C1981<>"")*(C5:C1981>=200)*(C5:C1981<=500)*((C4:C1980<200)+(C4:C1980>500)+(C4:C1980="")))

Ben konuya böyle ortadan girdiğim için kusuruma bakmayın....
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst