Excel formülü: Değer için birden çok çalışma sayfasında arama yapın -

Genel formül

=COUNTIF(INDIRECT("'"&sheetname&"'!"&"range"),criteria)

Özet

Çalışma kitabındaki birden çok çalışma sayfasında bir değer aramak ve bir sayı döndürmek için, EĞERSAY ve DOLAYLI işlevlerine dayalı bir formül kullanabilirsiniz. Bazı ön kurulumlarla, belirli bir değer için tüm çalışma kitabını aramak için bu yaklaşımı kullanabilirsiniz. Gösterilen örnekte, C5'teki formül şöyledir:

=COUNTIF(INDIRECT("'"&B7&"'!"&"1:1048576"),$C$4)

Bağlam - örnek veriler

Çalışma kitabı toplam 4 çalışma sayfası içerir. Sayfa1 , Sayfa2 ve Sayfa3'ün her biri şuna benzeyen 1000 rastgele ad içerir:

Açıklama

B7: B9 aralığı, aramaya dahil etmek istediğimiz sayfa adlarını içerir. Bunlar sadece metin dizeleridir ve bunların geçerli sayfa referansları olarak tanınması için biraz çalışmamız gerekir.

İçten dışa doğru çalışarak, bu ifade tam bir sayfa referansı oluşturmak için kullanılır:

"'"&B7&"'!"&"1:1048576"

Tek tırnak işaretleri, boşluk içeren sayfa adlarına izin vermek için eklenir ve ünlem işareti, bir sayfa adı içeren aralıklar için standart bir sözdizimidir. "1: 1048576" metni, çalışma sayfasındaki her satırı içeren bir aralıktır.

B7 değerlendirildikten ve değerler birleştirildikten sonra, yukarıdaki ifade şunu döndürür:

"'Sheet1'!1:1048576"

DOLAYLI işlevine 'başv_metni' bağımsız değişkeni olarak gider. DOLAYLI bu metni değerlendirir ve Sayfa1'deki her hücreye standart bir referans verir . Bu, aralık olarak EĞERSAY işlevine gider. Kriter, C4'e mutlak bir referans olarak sağlanır (formülün C sütununa kopyalanabilmesi için kilitlenir).

EĞERSAY, daha sonra bu durumda 25 olan "Meryem" değerine sahip tüm hücrelerin sayısını döndürür.

Not: EĞERSAY, büyük / küçük harfe duyarlı değildir.

Eşittir ve İçerir

C4'e eşit olan tüm hücreler yerine C4'teki değeri içeren tüm hücreleri saymak istiyorsanız, aşağıdaki gibi ölçütlere joker karakterler ekleyebilirsiniz:

=COUNTIF(INDIRECT("'"&B7&"'!"&"1:1048576"),"*"&C4&"*")

Şimdi EĞERSAY, hücrenin herhangi bir yerinde "Can" alt dizesine sahip hücreleri sayacaktır.

Verim

Genel olarak, tüm çalışma sayfası hücrelerini içeren bir aralık belirtmek iyi bir uygulama değildir. Aralık, milyonlarca ve milyonlarca hücre içerdiğinden, bunu yapmak performans sorunlarına neden olabilir. Bu örnekte, formül, geçici bir işlev olan DOLAYLI işlevi kullandığından, sorun karmaşıktır. Geçici işlevler her çalışma sayfası değişikliğinde yeniden hesaplanır, böylece performans üzerindeki etkisi çok büyük olabilir.

Mümkün olduğunda, aralıkları makul bir boyutla sınırlayın. Örneğin, verilerin 1000 satırdan sonra görünmeyeceğini biliyorsanız, yalnızca ilk 1000 satırı şu şekilde arayabilirsiniz:

=COUNTIF(INDIRECT("'"&B7&"'!"&"1:1000"),$C$4)

Ilginç makaleler...