# FindOneOf - Komut dosyası ve grafik fonksiyonu

FindOneOf(), sağlanan bir karakter kümesinden herhangi bir karakterin oluş konumunu bulmak için bir dize arar. Arama kümesindeki herhangi bir karakterin N. oluşunun konumu döndürülür. Burada N, fonksiyonun isteğe bağlı üçüncü parametresidir. Üçüncü bir parametre verilmezse ilk oluş döndürülür. Herhangi bir eşleşme bulunmazsa 0 sonucu döndürülür.

Söz Dizimi:

FindOneOf(text, char\_set[, count])

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

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| text | Orijinal dize. |
| char\_set | text içinde aranacak bir dizi karakter. |
| count | Karakterlerden herhangi birinin hangi oluşunun aranacağını tanımlar. Örneğin, 2 değeri ikinci oluşu arar. |

Örnek: Grafik ifadeleri

| Örnek | Sonuç |
| --- | --- |
| `FindOneOf(  'my example text string', 'et%s' )` | `e`, örnek dizedeki dördüncü karakter olduğu için `4` döndürür. |
| `FindOneOf(  'my example text string', 'et%s', 3 )` | Arama `e`, `t`, `%` veya `s` karakterlerinden biri için yapıldığından `12` döndürür ve `t`, örnek dizenin `12`. konumunda üçüncü oluşumdur. |
| `FindOneOf(  'my example text string', '¤%&' )` | `¤`, `%` veya `&` karakterlerinin hiçbiri örnek dizede olmadığı için `0` döndürür. |

## Örnek - FindOneOf temel bilgiler

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/FindOneOf.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, işlenecek orijinal metin dizelerini içeren `Phrase` adlı bir alan.

Komut dosyası

```
Example:
Load *
Inline
[Phrase
Many tiny beads
For a very long time
Has the potential for growth
];
```

Sonuçlar

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

* ` Phrase
                                   `

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

* `=FindOneOf(Phrase, 'e', 1)`

* `=FindOneOf(Phrase, 'y', 1)`

* `=FindOneOf(Phrase, 'ey', 1)`

* `=FindOneOf(Phrase, 'e', 2)`

* `=FindOneOf(Phrase, 'y', 2)`

* `=FindOneOf(Phrase, 'ey', 2)`

Sonuçlar tablosu

| Phrase | FindOneOf(Phrase, 'e', 1) | FindOneOf(Phrase, 'y', 1) | FindOneOf(Phrase, 'ey', 1) | FindOneOf(Phrase, 'e', 2) | FindOneOf(Phrase, 'y', 2) | FindOneOf(Phrase, 'ey', 2) |
| --- | --- | --- | --- | --- | --- | --- |
| For a very long time | 8 | 10 | 8 | 20 | 0 | 10 |
| Has the potential for growth | 7 | 0 | 7 | 12 | 0 | 12 |
| Many tiny beads | 12 | 4 | 4 | 0 | 9 | 9 |

Hesaplanan her boyut için çıktı, her bir ifadeye yönelik arama kümesindeki karakterlerin oluşma konumunu döndürür. Örneğin, `e` harfinin ilk oluşumu her bir ifade için sırasıyla `8`, `7` ve `12` konumlarında bulunur. Her bir ifadede `e` harfinin ikinci oluşu `20`, `12` ve `0` (bulunamadı) konumlarında bulunur. Benzer şekilde, "`e` veya `y`" harflerinin ilk oluşumu her bir ifade için sırasıyla `8`, `7` ve `4` konumlarında bulunur. `For a very long time` ifadesinde, "`e` veya `y`" ifadesinin ilk geçtiği yerin `8`, bir `e`, ikinci geçtiği yerin ise `10`, bir `y` konumunda bulunduğuna dikkat edin.

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

#### Komut dosyası

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

```
Example:
Load *, FindOneOf(InputText, SearchFor, Occurrence) AS FindOneOf_Matches
Inline
InputText, SearchFor, Occurrence
my example text string, et%s,1
my example text string, et%s,3
my example text string, ¤%&,1
];
```

Sonuçlar tablosu

| Giriş Metni | Aranacak | Oluşum | Eşleşmelerden Birini Bul |
| --- | --- | --- | --- |
| örnek metin dizem | ve%s | 1 | 4 |
| örnek metin dizem | et%s | 3 | 12 |
| örnek metin dizem | ¤%& | 1 | 0 |

## Örnek - FindOneOf senaryosu

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

#### Grafik ifadesi

Genel bakış

Bu örnekte, müşteri siparişlerinden oluşan bir veri kümesindeki müşteri yorumlarını analiz etmek ve işlem gerektirebilecek siparişleri belirlemek için `FindOneOf` fonksiyonu kullanılmaktadır. Her siparişte, müşterilerin siparişleri hakkında not veya yorum bırakabilecekleri bir `CustomerComment` alanı vardır. Yorumları analiz ederek, aciliyet veya özel istekleri gösterebilecek "!", "@", "#" gibi belirli anahtar kelimeleri veya karakterleri belirleyebilirsiniz.

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:

  * `TicketID` biletin kimlik numarası

  * `CustomerComment` orijinal metin dizesi

Komut dosyası

```
Example:
Load * inline [
TicketID, CustomerComment
1, I need this order ASAP!
2, Please confirm my order @12345.
3, Can you update my order?
4, I have a question about #discount.
5, Thank you!
];
```

Sonuçlar

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

* ` TicketID
                                   `

* `CustomerComment`

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

* `=FindOneOf(CustomerComment, '!,@,#')`

* `=If(FindOneOf(CustomerComment, '!,@,#')>0,'High Priority','Normal Priority')`

Sonuçlar tablosu

| TicketID | CustomerComment | FindOneOf(CustomerComment, '!,@,#') | If(FindOneOf(CustomerComment, '!,@,#')&gt;0,'Yüksek Öncelik','Normal Öncelik') |
| --- | --- | --- | --- |
| 1 | Bu siparişe en kısa zamanda ihtiyacım var! | 23 | Yüksek Öncelikli |
| 2 | Lütfen @12345 numaralı siparişimi onaylayın. | 25 | Yüksek Öncelikli |
| 3 | Siparişimi güncelleyebilir misiniz? | 0 | Normal Öncelik |
| 4 | İndirim hakkında bir sorum var. | 25 | Yüksek Öncelikli |
| 5 | Teşekkürler! | 10 | Yüksek Öncelikli |

`FindOneOf` fonksiyonunun çıktısını, kodda yüklenen orijinal `CustomerComment` dize değerleriyle karşılaştırın. Fonksiyon, `!,@,#` değerlerini kullanarak, yorum dizesinde bu karakterlerin bulunduğu konumu başarıyla döndürdü. Son hesaplama, arama karakterlerinden herhangi birini içeren kayıtları belirlemek ve bunları `High Priority` olarak atamak için koşullu bir `If` ifadesi kullanır. Arama karakterlerinden hiçbiri `!,@,#` bulunmazsa (örneğin 3. satır) bilet, `Normal Priority` olarak sınıflandırılır.