# SubField - kod ve grafik fonksiyonu

SubField(), orijinal kayıt alanlarının bir ayırıcıyla ayrılmış iki veya daha fazla bölümden oluştuğu bir üst dize alanından alt dize bileşenlerini ayıklamak için kullanılır.

Subfield() fonksiyonu örneğin, tam adlardan oluşan bir kayıt listesinden adı veya soyadı ayıklamak, bir yol adının bileşen parçalarına ayıklamak veya virgülle ayrılmış tablolardan verileri ayıklamak için kullanılabilir.

Subfield() fonksiyonunu bir LOAD deyimi içinde isteğe bağlı field\_no parametresini hariç bırakarak kullanırsanız, her bir alt dize için bir tam kayıt üretilir. Subfield() kullanılarak birkaç alan yüklenirse, tüm kombinasyonların Kartezyen çarpımları oluşturulur.

Söz Dizimi:

SubField(text, delimiter[, field\_no ])

Dönüş verileri türü: dize

Bağımsız Değişkenler:

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| text | Orijinal dize. Bu bir sabit kodlanmış metin, değişken, dolar işareti genişletmesi veya başka bir ifade olabilir. |
| delimiter | Dizeyi bileşen parçalarına ayıran text girişi içindeki bir karakter. |
| field\_no | İsteğe bağlı üçüncü bağımsız değişken, text ana dizesinin hangi alt dizelerinin döndürüleceğini belirten bir tamsayıdır. İlk alt dizeyi döndürmek için 1 değerini, ikinci alt dizeyi döndürmek için 2 değerini kullanın ve bu şekilde devam edin.<br><br><ul> <li><span>field_no</span> pozitif bir değerse alt dizeler soldan sağa doğru ayıklanır.</li> <li><span>field_no</span> negatif bir değerse alt dizeler sağdan sola doğru ayıklanır.</li> </ul> |

İpucu notu Len(), Right(), Left(), Mid() gibi fonksiyonların ve diğer dize fonksiyonlarının karmaşık kombinasyonlarını kullanmak yerine SubField() kullanılabilir.

Örnekler: Grafik ifadeleri

| Örnek | Sonuç |
| --- | --- |
| `SubField(S,   ';' ,2)` | S 'abc;cde;efg' ise 'cde' döndürür. |
| `SubField(S,   ';' ,1)` | S boş bir dizeyse boş bir dize döndürür. |
| `SubField(S,   ';' ,1)` | S ';' ise boş bir dize döndürür. |
| vMyPath yol adını içeren bir değişkeninizin olduğunu varsayın,<br><br>`Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;`değişkenlerini silin. | Metin ve resim grafiğinde şunun gibi bir hesaplama ekleyebilirsiniz:<br>vMyPath değişkeninin sağ tarafındaki üçüncü alt dize olduğu için 'Qlik' ile sonuçlanan `SubField(vMyPath, '\',-3``)`. |

## Örnekler: SubField kullanan kod ve grafik ifadeleri

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

#### Örnekler - Kod ve grafik ifadeleri

### Temel örnekler

| Örnek | Sonuç |
| --- | --- |
| `SubField(S,   ';' ,2)` | S 'abc;cde;efg' ise 'cde' döndürür. |
| `SubField(S,   ';' ,1)` | S boş bir dizeyse boş bir dize döndürür. |
| `SubField(S,   ';' ,1)` | S ';' ise boş bir dize döndürür. |
| vMyPath yol adını içeren bir değişkeninizin olduğunu varsayın,<br><br>`Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;`değişkenlerini silin. | Metin ve resim grafiğinde şunun gibi bir hesaplama ekleyebilirsiniz:<br>vMyPath değişkeninin sağ tarafındaki üçüncü alt dize olduğu için 'Qlik' ile sonuçlanan `SubField(vMyPath, '\',-3``)`. |

### Kod örneği 1

#### Komut dosyası

Aşağıdaki kod ifadelerini ve verileri veri yükleme düzenleyicisine yükleyin.

```
FullName:
					
LOAD * inline [
Name
'Dave Owen'
'Joe Tem'
];

SepNames:

Load Name,
SubField(Name, ' ',1) as FirstName,
SubField(Name, ' ',-1) as Surname
Resident FullName;
Drop Table FullName;
```

#### Görselleştirme oluşturma

Bir Qlik Sense sayfasında, Ad, Ad ve Soyadı boyutlarıyla bir tablo görselleştirmesi oluşturun.

#### Sonuç

| Name | FirstName | SurName |
| --- | --- | --- |
| Dave Owen | Dave | Owen |
| Joe Tem | Joe | Tem |

#### Açıklama

SubField() fonksiyonu, field\_no bağımsız değişkenini 1 olarak ayarlayarak Ad'ın ilk alt dizesini ayıklar. field\_no değeri pozitif olduğundan, alt dizeyi ayıklamak için soldan sağa bir sıra izlenir. İkinci bir fonksiyon çağrısı, field\_no bağımsız değişkenini -1 olarak ayarlayarak ikinci alt dizeyi ayıklar. Bu, alt dizeyi sağdan sola sıralayarak ayıklar.

### Kod örneği 2

#### Komut dosyası

Aşağıdaki kod ifadelerini ve verileri veri yükleme düzenleyicisine yükleyin.

```
LOAD DISTINCT
Instrument,
SubField(Player,',') as Player,
SubField(Project,',') as Project;

Load * inline [
Instrument|Player|Project
Guitar|Neil,Mike|Music,Video
Guitar|Neil|Music,OST
Synth|Neil,Jen|Music,Video,OST
Synth|Jo|Music
Guitar|Neil,Mike|Music,OST
] (delimiter is '|');
```

#### Görselleştirme oluşturma

Qlik Sense sayfasında Araç, Oynatıcı ve Proje boyutlarıyla bir tablo görselleştirmesi oluşturun.

#### Sonuç

| Instrument | Player | Project |
| --- | --- | --- |
| Guitar | Mike | Music |
| Guitar | Mike | Video |
| Guitar | Mike | OST |
| Guitar | Neil | Music |
| Guitar | Neil | Video |
| Guitar | Neil | OST |
| Synth | Jen | Music |
| Synth | Jen | Video |
| Synth | Jen | OST |
| Synth | Jo | Music |
| Synth | Neil | Music |
| Synth | Neil | Video |
| Synth | Neil | OST |

#### Açıklama

Bu örnek, Subfield() fonksiyonunu aynı LOAD deyimi içerisinden field\_no parametresi dışarıda bırakılarak kullanmanın, nasıl tüm kombinasyonların Kartezyen çarpımlarını oluşturduğunu gösterir. Yinelenen kayıt oluşturmaktan kaçınmak için DISTINCT seçeneği kullanılır.