# Index - Komut dosyası ve grafik fonksiyonu

Index(), sağlanan bir alt dizenin n. oluşunun başlangıç konumunu bulmak için bir dizeyi arar. İsteğe bağlı üçüncü bir bağımsız değişken n değerini sağlar; atlanması halinde bu 1 olur. Negatif bir değer dizenin sonundan itibaren arar. Dizedeki konumlar soldan sağa doğru 1'den başlayıp artarak numaralandırılır.

Söz Dizimi:

Index(text, substring[, count])

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

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| text | Orijinal dize. |
| substring | text içinde aranacak bir karakter dizesi.<br><br>Bilgi notuAlt dize metinde mevcut değilse Dizin 0 döndürür. |
| count | substring öğesinin hangi oluşunun aranacağını tanımlar. Örneğin, 2 değeri ikinci oluşu arar. Negatif bir değer dizenin sonundan itibaren başlar. |

Örnek: Grafik ifadeleri

| Örnek | Sonuç |
| --- | --- |
| `Index( 'abcdefg', 'cd' )` | `3` döndürür |
| `Index(  'abcdabcd', 'b', 2 )` | `6` döndürür (ikinci `b` oluşu) |
| `Index( 'abcdabcd', 'b',-2 )` | `2` döndürür (sondan başlayarak ikinci `b` oluşu) |
| `Left( Date, Index( Date,'-') -1` ) where `Date = 1997-07-14` | `1997` döndürür |
| `Mid( Date, Index( Date, '-', 2 ) -2, 2 )` where `Date` = `1997-07-14` | `07` döndürür |
| `Index( 'abc', 'x' )` | `0` döndürür (`abc` dizesi içinde `x` bulunmaz) |
| `Index( 'abc', 'a', 2 )` | `0` döndürür (2. `a` oluşu yoktur) |

## Örnek - Dizin temel bilgiler

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

#### Grafik ifadesi

Genel bakış

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 tablosunda `InputString` adında bir alan.

Komut dosyası

```
Example:
Load * inline [
InputString
abcdefg
abcdabcd ];
```

Sonuçlar

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

* ` InputString
                                   `

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

* `=Index(InputString, 'cd')`

* `=Index(InputString, 'e')`

* `=Index(InputString, 'b', -1)`

Sonuçlar tablosu

| InputString | Index(InputString, 'cd') | Index(InputString, 'e') | Index(InputString, 'b', -1) |
| --- | --- | --- | --- |
| abcdabcd | 3 | 0 | 6 |
| abcdefg | 3 | 5 | 2 |

`abcdabcd` dizesinin bulunduğu ilk satır şunu döndürür:

* `3` - ilk `cd` oluşu

* `0` - çünkü `e` dizede bulunmuyor

* `6` - dizenin sonundan başlayarak ilk `b` oluşu

`abcdefg` dizesinin bulunduğu ikinci satır şunu döndürür:

* `3` - ilk `cd` oluşu

* `5` - ilk `e` oluşu

* `2` - dizenin sonundan başlayarak ilk `b` oluşu

Bilgi notuNegatif bir `count` parametresi dizeyi tersten tarar. Ancak geri döndürülen konum, tersten taransa bile her zaman soldan sağa doğru gösterilir.

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

#### Komut dosyası

Aşağıdaki kod, fonksiyonun bir komut dosyasında nasıl kullanılacağını gösterir.

```
Example:
Load
*,
index(String, 'cd') as Index_CD,               // returns 3  in Index_CD
index(String, 'b') as Index_B,                // returns 2 in Index_B
index(String, 'b', -1) as Index_B2;           // returns 2 or 6 in Index_B2
Load * inline [
String
abcdefg
abcdabcd ];
```

Sonuçlar tablosu

| Dize | Index\_CD | Index\_B | Index\_B2 |
| --- | --- | --- | --- |
| abcdefg | 3 | 2 | 2 |
| abcdabcd | 3 | 2 | 6 |

## Örnek - Dizin senaryosu

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

#### Grafik ifadesi

Genel bakış

Bir müşteri destek merkezi, müşteri e-posta mesajlarının konu satırlarını içeren bir veri kümesine sahiptir. Destek merkezi bu e-postaları konu satırında geçen anahtar kelimelere göre kategorize etmek istiyor, örneğin `Refund`, `Complaint` ve `Technical Issue`. Konu satırları, veri kümesinde `EmailSubject` adlı bir alanda saklanır.

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 tablosunda `EmailSubject` adında bir alan.

Komut dosyası

```
Example:
Load * inline [
EmailSubject
Request for a Refund - Order 12345
Technical Issue with Product XYZ
Complaint about delivery service
Follow-up on Refund Request
Technical Issue not resolved
];
```

Sonuçlar

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

* ` EmailSubject
                                   `

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

* `=If(Index(EmailSubject, 'Refund') > 0, 'Refund', 'Other')`, hangi e-posta konu metninin geri ödemelerle ilgili olduğunu hesaplamak için.

Sonuçlar

| EmailSubject | If(Index(EmailSubject, 'Refund') &gt; 0, 'Refund', 'Other') |
| --- | --- |
| Teslimat hizmeti hakkında şikayet | Diğer |
| Para İadesi Talebiyle İlgili Takip | Para İadesi |
| Para İadesi Talebi - Sipariş 12345 | Para İadesi |
| Teknik Sorun çözülmedi | Diğer |
| XYZ Ürünü ile İlgili Teknik Sorun | Diğer |

`Index` fonksiyonunun çıktısı, `Refund` dizesini içeren tüm konu satırlarını başarıyla tanımlamıştır. Bu, iç içe geçmiş fonksiyonları kullanarak verileri nasıl analiz edip kategorilere ayırabileceğinizi ve kullanıcılara nasıl değer sunabileceğinizi gösteren bir örnektir.