wildmatch - kod ve grafik fonksiyonu
wildmatch fonksiyonu ilk parametreyi sonraki tüm parametrelerle karşılaştırır ve eşleşen ifadenin sayısını döndürür. Karşılaştırma dizelerinde joker karakterlerin ( * ve ?) kullanılmasına izin verir. *, herhangi bir karakter sırasını eşleştirir. ?, herhangi bir tek karakterle eşleşir. Karşılaştırma büyük/küçük harf duyarlı değildir.
Syntax:
wildmatch( str, expr1 [ , expr2,...exprN ])
'Stockholm', wildmatch fonksiyonundaki ifade listesinde yer almadığından, aşağıdaki tablodaki ilk ifade, Stockholm için 0 değerini döndürür. Ayrıca ? yalnızca tek bir karakterle eşleştiğinden 'Boston' için de 0 değerini döndürür.
Şehirler | wildmatch( Cities,'Tor*','?ton','Beijing','*urich') | wildmatch( Cities,'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|---|
Beijing |
3 |
3 |
Boston | 0 | 2 |
Stockholm | 0 | 4 |
Toronto | 1 | 1 |
zurich | 4 | 5 |
Bir ifade için özel bir sıralama gerçekleştirmek için wildmatch öğesini kullanabilirsiniz.
Varsayılan olarak sütunlar, verilere bağlı olarak sayısal ve alfabetik şekilde sıralanır.
Şehirler |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
Sıralamayı değiştirmek için aşağıdakileri yapın:
- Özellikler panelinde grafiğiniz için Sıralama bölümünü açın.
- Özel sıralama yapmak istediğiniz sütun için otomatik sıralamayı kapatın.
- Sayısal olarak sırala ve Alfabetik olarak sırala seçeneğinin seçimini kaldırın.
-
İfadeye göre sırala seçeneğini belirleyin ve şuna benzer bir ifade girin:
=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')
Cities sütunundaki sıralama düzeni değişir.
Şehirler |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
Döndürülen sayısal değeri de görüntüleyebilirsiniz.
Şehirler | Cities & ' - ' & wildmatch ( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |
Yükleme kodu
Veri alt kümesini yüklemek için wildmatch öğesini kullanabilirsiniz. Örneğin, fonksiyondaki bir ifade için sayısal değer döndürebilirsiniz. Daha sonra sayısal değere göre verileri sınırlayabilirsiniz. Bir eşleşme olmadığında Wildmatch, 0 değerini döndürür. Bu nedenle bu örnekte eşleşmeyen tüm ifadeler 0 değerini döndürür ve WHERE deyimi tarafından veri yüklemesinden hariç tutulur.
Veri yükleme düzenleyicisi'nde Load adlı yeni bir bölüm oluşturun ve sonra aşağıdakileri ekleyin:
Transactions:
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
];
/*
Create new table called Transaction_Buckets
Create new fields called Customer, and Color code - Black, Blue, blue, red
Load Transactions table.
Wildmatch returns 1 for 'Black', 2 for 'Blue', 3 for 'blue', 4 for 'Red'.
Only values that returned numeric value greater than 0
are loaded by WHERE statement into Transactions_Buckets table.
*/
Transaction_Buckets:
Load
customer_id,
customer_id as [Customer],
color_code as [Color Code Black, Blue, blue, Red]
Resident Transactions
Where wildmatch(color_code,'Bl*','R??') > 0;
Sonuçlar
Renk Kodu Black, Blue, blue, Red | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
blue | 5646471 |
Red | 049681 |
Red | 2038593 |