# Mid funkcja skryptu i funkcja wykresu

Funkcja Mid() zwraca część ciągu wejściowego zaczynającą się w pozycji znaku określonej przez drugi argument („start”), zwracając liczbę znaków określoną przez trzeci argument („count”). Jeśli parametr „count” zostanie pominięty, wówczas zostanie zwrócona reszta ciągu wejściowego. Pierwszy znak ciągu wejściowego ma numer 1.

Składnia:

Mid(text, start[, count])

Typ zwracanych danych: ciąg znaków

Argumenty

| Argument | Opis |
| --- | --- |
| text | Pierwotny ciąg znaków. |
| start | Liczba całkowita określająca pozycję pierwszego znaku w tekście text do uwzględnienia. |
| count | Określa długość wyjściowego ciągu znaków. W przypadku pominięcia uwzględniane są wszystkie znaki określone przez wartość start. |

Przykład: wyrażenia wykresu

| Przykład | Wynik |
| --- | --- |
| `Mid( 'abcdef',3 )` | Zwraca wartość `cdef` |
| `Mid( 'abcdef',3, 2 )` | Zwraca wartość `cd` |

## Przykład — podstawy Mid

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

#### Wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `InputText`, pierwotny ciąg znaków

  * `StartPosition`, pozycja początkowa pierwszego znaku, który ma zostać uwzględniony po przetworzeniu z pierwotnego ciągu tekstowego

  * `CharacterCount`, liczba znaków do zwrócenia (parametr opcjonalny)

Skrypt ładowania

```
Example:
Load * inline [
InputText, StartPosition, CharacterCount
abcdef, 3, 2
abcdef, 2, 3
210714, 3, 2
210714, 2, 3
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* ` InputText
                                   `

* `StartPosition`

* `CharacterCount`

Utwórz następujące wymiary wyliczane:

* `=mid(InputText,StartPosition)` do obliczenia znaków do wyodrębnienia z `InputText`, zaczynając od wartości w polu `StartPosition`. Funkcja zwróci wszystkie znaki od wartości `StartPosition` do końca `InputString`, ponieważ nie podano parametru `Count`.

* `=mid(InputText,StartPosition,CharacterCount)` do obliczenia znaków do wyodrębnienia z `InputText`, zaczynając od wartości w polu `StartPosition`. Wartość w polu `CharacterCount` określa liczbę zwracanych znaków, począwszy od wartości w polu `StartPosition`.

Tabela wynikowa

| Tekst wejściowy | Pozycja początkowa | Liczba znaków | Mid(TekstWejściowy,PozycjaPoczątkowa) | Mid(TekstWejściowy,PozycjaPoczątkowa,LiczbaZnaków |
| --- | --- | --- | --- | --- |
| abcdef | 2 | 3 | bcdef | bcd |
| abcdef | 3 | 2 | cdef | cd |
| 20210714 | 2 | 3 | 10714 | 107 |
| 20210714 | 3 | 2 | 0714 | 07 |

Pierwszy wiersz zwraca wartość `bcdef` dla pierwszego wyrażenia. Wyrażenie rozpoczyna od pozycji 2 i zwraca wszystkie znaki, ponieważ argument `Count` nie jest ustawiony. Drugie wyrażenie również rozpoczyna od pozycji 2, ale zwraca tylko znaki `bcd`, ponieważ argument `Count` wynosi 2.

Drugi wiersz zwraca wartość `cdef` dla pierwszego wyrażenia. Wyrażenie rozpoczyna od pozycji 3 i zwraca wszystkie znaki, ponieważ argument `Count` nie jest ustawiony. Drugie wyrażenie również rozpoczyna od pozycji 3, ale zwraca tylko znaki `cd`, ponieważ argument `Count` wynosi 2.

Trzeci wiersz zwraca wartość `10714` dla pierwszego wyrażenia. Wyrażenie rozpoczyna od pozycji 2 i zwraca wszystkie znaki, ponieważ argument `Count` nie jest ustawiony. Drugie wyrażenie również rozpoczyna od pozycji 2, ale zwraca tylko znaki `107`, ponieważ argument `Count` wynosi 3.

Czwarty wiersz zwraca wartość `0714` dla pierwszego wyrażenia. Wyrażenie rozpoczyna od pozycji 3 i zwraca wszystkie znaki, ponieważ argument `Count` nie jest ustawiony. Drugie wyrażenie również rozpoczyna od pozycji 2, ale zwraca tylko znaki `07`, ponieważ argument `Count` wynosi 2.

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

#### Skrypt ładowania

Poniższy kod pokazuje, jak użyć tej funkcji w skrypcie ładowania.

```
Example:
Load *,
mid(Text,StartPosition) as Mid1,
mid(Text,StartPosition,Count) as Mid2;
Load * inline [
Text, StartPosition, Count
'abcdef', 3, 2
'abcdef', 2, 3
'210714', 3, 2
'210714', 2, 3
];
```

Tabela wynikowa

| Tekst | Pozycja początkowa | Mid1 | Licz | Mid2 |
| --- | --- | --- | --- | --- |
| abcdef | 3 | cdef | 2 | cd |
| abcdef | 2 | bcdef | 3 | bcd |
| 210714 | 3 | 0714 | 2 | 07 |
| 210714 | 2 | 10714 | 3 | 107 |

## Przykład — zastosowanie Mid

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

#### Wyrażenie wykresu

Przegląd

Źródło danych zawiera kolumnę o nazwie `OrderID`, w której jest używany następujący format strukturalny: `ORDYYYY-COUNTRYCODE-ORDERNUMBER`. Aby spełnić wymóg związany z raportowaniem, należy wyodrębnić i przedstawić kod kraju jako osobną kolumnę.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Orders`.

* Jedno pole w tabeli danych o nazwie `OrderID`.

Skrypt ładowania

```
Orders:
Load * inline [
OrderID
ORD2024-US-123456
ORD2024-UK-654321
ORD2024-CA-789123
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:

* ` OrderID
                                   `

Utwórz następujący wymiar wyliczany:

* `=Mid(OrderID, 9, 2)` aby wyodrębnić dwuliterowy kod kraju z `OrderID`.

Tabela wynikowa

| OrderID | Mid(OrderID, 9, 2) |
| --- | --- |
| ORD2024-CA-789123 | CA |
| ORD2024-UK-654321 | UK |
| ORD2024-US-123456 | US |

W danych wyjściowych funkcji `Mid` wyodrębniono dwuliterowe kody krajów z wartości ciągu `OrderID`.

## Dowiedz się więcej

* [Index funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Index.htm)