The importance of Only()
Only() yalnızca grupta tek bir olası değer varsa bir değer döndürür. Bu değer, toplamanın sonucu olacaktır. Bir toplama işlevi belirtilmezse Qlik Sense, Only() varsayılanını alır.
Grafik boyutu ile parametre arasında bire bir ilişki varsa Only() işlevi yalnızca olası değeri döndürür. Birden çok değer varsa NULL değerini döndürür. Örneğin, birim fiyatın =12 olduğu tek bir ürün arandığında, birden fazla ürünün birim fiyatı 12 ise NULL döndürülür.
Aşağıdaki resimlerde bire bir ve bire çok ilişkiler arasındaki fark gösterilmektedir:
Only() işlevi bir toplama işlevidir. Girdi olarak birçok kayıt kullanır ve Sum() veya Count() işlevlerine benzer şekilde yalnızca bir değer döndürür. Qlik Sense, neredeyse tüm hesaplamalarında toplamaları kullanır. Bir grafikteki, sıralama ifadesindeki, metin kutusundaki, gelişmiş aramadaki ve hesaplanan etiketteki ifadelerin tamamı toplamalardır ve toplama işlevi olmadan hesaplanamaz.
Ancak kullanıcı, açıkça toplama işlevi içermeyen bir ifade girerse ne olur? Örneğin, sıralama ifadesi Date olarak ayarlanırsa? Veya =[Product Type]='Beer and Wine' şeklinde, bira ve şarap satın alan müşteriler için gelişmiş arama varsa?
Burada Only() işlevi, hesaplama işlemini etkiler. İfadede açıkça bir toplama işlevi yoksa Qlik Sense, Only() işlevini örtük olarak kullanır. Yukarıdaki durumlarda, sıralama ifadesi olarak Only(Date) kullanılır ve arama ölçütü olarak da Only([Product Type])='Beer and Wine' kullanılır.
Bazen yeni ifade, kullanıcının beklemediği bir sonuç döndürür. Yukarıdaki iki örnek de yalnızca bir Date veya Product Type olası değeri olduğunda çalışır ancak birden fazla değer olduğunda bu örneklerin ikisi de çalışmaz.
Only() kullanan farklı ifadeler
Benzer ifadelerle dört adet KPI oluşturacağız. Bu şekilde, çıplak alan referanslarının veya ifademizde farklı bir konumda Only() bulunmasının seçim sonuçlarınız üzerinde nasıl büyük bir etkisi olabileceğini karşılaştırabiliriz.
Uygulamanın içindeki Importance of Only() sayfasında, Invoice Date boyut olacak şekilde bir filtre bölmesi göreceksiniz.
Aşağıdakileri yapın:
- KPI oluşturun.
- Hesaplama ekle'ye tıklayın. simgesine tıklayın.
İfade düzenleyicisi açılır. - Şunları girin: Month([Invoice Date])
- Month(Only([Invoice Date])), Month(Max([Invoice Date])) ve Only(Month([Invoice Date])) hesaplamalarıyla üç KPIs daha oluşturun.
- Uygula'ya tıklayın.
Çıplak alan ifadesi olduğunda Only() işlevi en düşük düzeyde eklenir. Başka bir deyişle, ilk iki KPI, Month([Invoice Date]) ve Month(Only([Invoice Date])), aynı yorumlanır ve her zaman aynı sonucu verir.
Dört KPI'dan üçünün NULL döndürdüğünü görebilirsiniz. Üçüncü KPI, Month(Max([Invoice Date])) seçim yapılmamış olsa da bir değer döndürür.
İfade yazarken her zaman hangi toplamayı kullanmak istediğinizi veya birkaç değer varsa hangi değeri kullanmak istediğinizi belirlemeniz gerekir. Birkaç değeri temsil etmek için NULL değerini kullanmak isterseniz ifadeyi olduğu gibi bırakabilirsiniz. Sayılar için bunun yerine Sum(), Avg(), Min() veya Max() kullanmak isteyebilirsiniz. Dizeler için Only() veya MinString() kullanmak isteyebilirsiniz.
Aşağıdakileri yapın:
- Sayfayı düzenlemeyi durdurun.
- Filtre bölmesinde Ocak ayına ait bir tarih seçin.
- seçeneğine tıklayarak seçimi onaylayın.
Tek bir seçim yapıldığında, tüm KPI'lar doğru yanıtı döndürür. İfade, Month([Invoice Date]) içindeki ifade gibi çıplak alan başvurusu içerse bile benzersiz bir seçim yapmamız, ifadenin uygun değeri döndürmesine olanak sağlar.
Aşağıdakileri yapın:
- Filtre bölmesinde Ocak ayına ait ek bir tarih seçin.
- seçeneğine tıklayarak seçimi onaylayın.
İlk iki KPI, NULL değerini döndürürken diğer iki KPI ise uygun Ocak değerini döndürür. Yaptığımız tarih seçimlerinin her ikisi de Ocak ayına ait tarihler olduğundan, dördüncü KPI doğru bir yanıt döndürür.
Aşağıdakileri yapın:
- Filtre bölmesinde Ocak dışında bir aya ait ek bir tarih seçin.
- seçeneğine tıklayarak seçimi onaylayın.
Farklı aylara ait tarihler kullanılarak birden çok seçim yapıldığında yalnızca üçüncü KPI bir değer döndürür. Month(Max([Invoice Date])) ifadesine göre, yapılan seçimdeki en büyük ayın değerini döndürür. Only(), çıplak alan başvuruları içeren ifadelere otomatik olarak eklendiğinden, ifadeniz için en düşük değerin uygun olacağını her zaman varsayamazsınız. Only() ifadesinin yerleşimi önemlidir.
Daha fazla bilgi için bkz. Yalnızca - grafik işlevi.