# alt - Komut dosyası ve grafik fonksiyonu

alt fonksiyonu, geçerli bir sayı temsiline sahip olan parametrelerin ilkini döndürür. Böyle bir eşleşme bulunamazsa, son parametre döndürülür. Herhangi bir sayıda parametre kullanılabilir.

Söz Dizimi:

alt(expr1[ , expr2 , expr3 , ...] , else)

Dönüş verileri türü: tamsayı

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| expr1 | Geçerli bir sayı temsili denetimi için ilk ifade. |
| expr2 | Geçerli bir sayı temsili denetimi için ikinci ifade. |
| expr3 | Geçerli bir sayı temsili denetimi için üçüncü ifade. |
| else | Önceki parametrelerin hiçbirinde geçerli bir sayı temsili olmaması durumunda dönen değer. |

alt fonksiyonu çoğu zaman sayı veya tarih yorumlama fonksiyonları ile birlikte kullanılır. Bu sayede Qlik Sense, önceliği belirlenmiş bir sırada farklı tarih biçimlerini test edebilir. Ayrıca, sayısal ifadelerde NULL değerleri işlemek için de kullanılabilir.

Örnek: Grafik ifadeleri

| Örnek | Sonuç |
| --- | --- |
| `alt( date#(<br>						dat , 'YYYY/MM/DD' ),` `date#( dat<br>						, 'MM/DD/YYYY' ),` `date#( dat<br>						, 'MM/DD/YY' ),` `'No valid<br>						date' )` | Bu ifade, tarih alanının belirtilen üç tarih biçiminden herhangi birine göre bir tarih içerip içermediğini test eder. İçerdiği takdirde, ilk dizeyi ve tarihin geçerli bir sayı temsilini içeren ikili bir değer döndürür. Bir eşleşme bulunamazsa, `No valid date` metni döndürülür (herhangi bir geçerli sayı temsili olmadan). |
| `alt(Sales,0) + alt(Margin,0)` | Bu ifade `Sales` ve `Margin` alanlarını ekler ve eksik (NULL) değerlerin yerine `0` koyar. |

## Örnek - alt temel bilgileri

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/alt.htm)

#### Grafik ifadesi

Genel bakış

Bir veri kümesi eksik satış ve tahmin verileri içerir. Boşlukları doldurmak için eksik değerleri geçerli alternatif değerlerle değiştirmek istiyorsunuz.

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Example` adlı veri tablosuna yüklenen bir veri kümesi.

* Veri tablosundaki şu alanlar:

  * `ID`

  * `Sales`

  * `Forecast`

Komut dosyası

```
Example:
LOAD * INLINE [
ID, Sales, Forecast
1, 500, 450
2, , 300
3, 200, 250
4, , 400
5, 350,
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `ID`

* `Sales`

* `Forecast`

Şu hesaplamayı oluşturun:

* `=Sum(alt(Sales, Forecast))`, eksik değerleri geçerli alternatif değerlerle değiştirerek geçerli bir sayı temsili döndürmek için.

Sonuçlar tablosu

| ID | Sales | Forecast | Sum(alt(Sales, Forecast)) |
| --- | --- | --- | --- |
| Totals |  |  | 1750 |
| 1 | 500 | 450 | 500 |
| 2 |  | 300 | 300 |
| 3 | 200 | 250 | 200 |
| 4 |  | 400 | 400 |
| 5 | 350 |  | 350 |

`alt` fonksiyonu, eksik `Sales` değerlerine sahip `ID` satırları için hesaplama hesaplamasında `Forecast` değerini döndürür. Eksik değerleri geçerli alternatif değerlerle değiştirerek tamamen doldurulmuş bir veri kümesi oluşturabilirsiniz.

## Örnek - Eksik değerleri değiştirmek için alt kullanma

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/alt.htm)

#### Grafik ifadesi

Genel bakış

Bir şirket birden fazla sensörden sıcaklık verileri toplar. Bir sensörden gelen eksik verileri diğer sensörden gelen verilerle değiştirmek istiyorsunuz.

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Example` adlı veri tablosuna yüklenen bir veri kümesi.

* Veri tablosundaki şu alanlar:

  * `Time`

  * `Temp_Sensor1`

  * `Temp_Sensor2`

Komut dosyası

```
Example:
LOAD * INLINE [
Time, Temp_Sensor1, Temp_Sensor2
08:00, 23.5, 24.0
09:00, , 23.8
10:00, 24.1,
11:00, , 24.5
12:00, 23.9, 24.1
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `Time`

* `Temp_Sensor1`

* `Temp_Sensor2`

Şu hesaplamayı oluşturun:

* `=Sum(alt(Temp_Sensor1, Temp_Sensor2))`, geçerli bir sayı gösterimi döndürmek için.

Sonuçlar tablosu

| Time | Temp\_Sensor1 | Temp\_Sensor2 | Sum(alt(Temp\_Sensor1, Temp\_Sensor2)) |
| --- | --- | --- | --- |
| Totals |  |  | 119.8 |
| 08:00 | 23.5 | 24.0 | 23.5 |
| 09:00 |  | 23.8 | 23.8 |
| 10:00 | 24.1 |  | 24.1 |
| 11:00 |  | 24.5 | 24.5 |
| 12:00 | 23.9 | 24.1 | 23.9 |

Sonuçlara bakıldığında `alt` fonksiyonu, eksik sensör verilerini diğer sensörden alınan geçerli alternatif sonuçlarla değiştirmiştir. Bu, boşlukları doldurarak veri kümesini tamamlar.

## Örnek - alt senaryosu

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/alt.htm)

#### Grafik ifadesi

Genel bakış

Bu senaryo, eksik veya boş değerleri değiştirmek için `alt` fonksiyonunu kullanabileceğiniz farklı yolları gösterir.

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Example` adlı veri tablosuna yüklenen bir veri kümesi.

* Veri tablosundaki şu alanlar:

  * `ProductID`

  * `ProductName`

  * `SalesAmount`

  * `ReturnAmount`

  * `Profit`

  * `Discount`

  * `Category`

  * `Year`

  * `Region`

  * `CustomerRating`

Komut dosyası

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, SalesAmount, ReturnAmount, Profit, Discount, Category, Year, Region, CustomerRating
101, "Laptop", 1200, 200, 500, , "Electronics", 2023, "North",
102, "Tablet", 800, , 300, 50, "Electronics", 2023, "South", 4
103, "Smartphone", 1500, , 600, 100, , 2022, "East", 5
104, "Printer", 400, , , 20, "Accessories", 2021, , 3
105, , 1000, 100, , 30, "Electronics", 2023, "West", 4
106, "Monitor", , 150, 250, , "Accessories", 2022, "North", 5
107, "Keyboard", 200, , 80, 5, , 2022, "South", 2
108, "Mouse", , 50, , , "Accessories", , "East",
109, , 600, , , , "Electronics", 2023, , 4
110, "Headphones", 300, 30, 100, , "Accessories", 2021, "West", 3
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanı boyut olarak ekleyin:

* `ProductID`

Aşağıdaki hesaplanan boyutu oluşturun:

* `=Coalesce( ProductName,  'Unknown Product')`, `ProductName` değeri olmayan tüm ürünlere yönelik `Unknown Product` açıklamasını sağlamak için.

Aşağıdaki hesaplamaları oluşturun:

* `=Sum(alt(SalesAmount, ReturnAmount, Profit))`, `SalesAmount` bulunamazsa geçerli bir sayı döndürmek için.

* `=avg(alt(CustomerRating, 3))`, başlangıçta hiçbiri sağlanmamışsa geçerli bir standartlaştırılmış müşteri derecelendirmesi döndürmek için.

* `=Sum(alt(Discount, SalesAmount * 0.05))`, geçerli bir indirim döndürmek için.

* `=Sum(alt(Profit, SalesAmount * 0.1))`, geçerli bir kâr değeri döndürmek için.

* `=Sum(alt(SalesAmount, avg(TOTAL SalesAmount)))`, geçerli bir satış değeri döndürmek için.

* `=Sum(alt(Discount, avg(TOTAL Discount)))`, geçerli bir indirim değeri döndürmek için.

Sonuçlar tablosu

| ProductID | Coalesce( ProductName, 'Unknown Product') | Sum(alt(SalesAmount, ReturnAmount, Profit)) | avg(alt(CustomerRating, 3)) | Sum(alt(Discount, SalesAmount \* 0.05)) | Sum(alt(Profit, SalesAmount \* 0.1)) | Sum(alt(SalesAmount, avg(TOTAL SalesAmount))) | Sum(alt(Discount, avg(TOTAL Discount))) |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Toplamlar |  | 6200 | 3.6 | 310 | 2030 | 7500 | 410 |
| 101 | Dizüstü Bilgisayar | 1200 | 3 | 60 | 500 | 1200 | 41 |
| 102 | Tablet | 800 | 4 | 50 | 300 | 500 | 50 |
| 103 | Akıllı Telefon | 1500 | 5 | 100 | 600 | 800 | 100 |
| 104 | Yazıcı | 400 | 3 | 20 | 40 | 400 | 20 |
| 105 | Bilinmeyen Ürün | 1000 | 4 | 30 | 100 | 1000 | 30 |
| 106 | İzle | 150 | 5 | 0 | 250 | 750 | 41 |
| 107 | Klavye | 200 | 2 | 5 | 80 | 200 | 5 |
| 108 | Fare | 50 | 3 | 0 | 0 | 750 | 41 |
| 109 | Bilinmeyen Ürün | 600 | 4 | 30 | 60 | 600 | 41 |
| 110 | Kulaklık | 300 | 3 | 15 | 100 | 300 | 41 |

`alt` fonksiyonu, değerler eksik olduğunda alternatif değerlerin hesaplanabilmesini ve döndürülebilmesini sağlar. Aşağıdaki sonuçları gözlemleyin:

* Sütun 2, tüm null değerler için `Unknown Product` değerini döndürmek üzere `Coalesce` fonksiyonunu kullanır. `Alt` fonksiyon yalnızca sayısal değerler için geçerli olduğundan kullanılamaz.

* Sütun 3, `SalesAmount` için değeri döndürür. Hiçbir değer bulunamazsa `ReturnAmount` değerini döndürür. `ReturnAmount` değeri bulunmazsa `Profit` değerini döndürür. Bu, `SalesAmount` içinde değer yoksa sütunun bir değerle doldurulmasını sağlamaya yardımcı olur.

* Sütun 4, `CustomerRating` döndürür. Herhangi bir değer bulunamazsa bu varsayılan olarak `3` değerini alır. Örneğin, `Laptop` ürününün müşteri değerlendirmesi yoktur, bu nedenle `3` döndürülür. Hesaplama daha sonra sütun için ortalamayı hesaplar.

* Sütun 5, indirim değerini verir. Herhangi bir değer mevcut değilse 5% olarak `SalesAmount` değeri hesaplanır.

* Sütun 6, `Profit` değerini döndürür. Hiçbir değer mevcut değilse `SalesAmount` 10% döndürür.

* Sütun 7, `SalesAmount` döndürür. Herhangi bir değer verilmezse tüm veri kümesi genelinde ortalama `SalesAmount` döndürülür. Örneğin, `Monitor` ve `Mouse` ürünlerinde `SalesAmount` için bir değer yoktur, bu nedenle her ikisi de tüm `SalesAmount` değerlerinin ortalaması olan `750` değerini döndürür.

* Sütun 8, `Discount` değerini döndürür. Herhangi bir değer bulunamazsa sistem tüm veri kümesindeki ortalama indirimi hesaplar ve döndürür.