# Dual funkcja skryptu i funkcja wykresu

Funkcja Dual() łączy liczbę i ciąg znaków w jeden rekord, dzięki czemu liczbowa reprezentacja rekordu może zostać użyta na potrzeby sortowania i obliczania (wartość ciągu znaków może natomiast zostać użyta do celów wyświetlania).

[Dual Function](https://play.vidyard.com/vNa9jcN6DizzYQ1hDZ5VAr)

Składnia:

Dual(text, number)

Typ zwracanych danych: wartość podwójna

InformacjaWszystkie podwójne wartości zwracane są wyrównane do prawej.

Argumenty

| Argument | Opis |
| --- | --- |
| text | Wartość ciągu znaków używana w kombinacji z argumentem liczbowym. |
| number | Liczba używana w kombinacji z ciągiem w argumencie ciągu. |

W aplikacji Qlik Sense wszystkie wartości pola są potencjalnie wartościami podwójnymi. Oznacza to, że wartości pola mogą mieć zarówno wartość liczbową, jak i tekstową. Przykładem może być data, która może mieć wartość liczbową 40908 i reprezentację tekstową '2011-12-31'.

InformacjaGdy kilka elementów danych wczytanych do jednego pola ma różne reprezentacje w postaci ciągu, ale tę samą poprawną reprezentację liczbową, wówczas wszystkie one będą mieć tę samą pierwszą napotkaną reprezentację w postaci ciągu.

WskazówkaFunkcja dual jest zwykle używana wcześnie w skrypcie, zanim dane zostaną wczytane do określonego pola, w celu utworzenia pierwszej reprezentacji w postaci znakowej, która będzie pokazana w panelach filtrowania.

Przykład: wyrażenia wykresu

| Przykład | Opis |
| --- | --- |
| `Dual(IF(DayOfWeek = 0, 'Monday',`<br>`IF(DayOfWeek = 1, 'Tuesday',`<br>`If(DayOfWeek = 2 ,'Wednesday',`<br>`If(DayOfWeek = 3 ,'Thursday',		If(DayOfWeek = 4 ,'Friday',		If(DayOfWeek = 5 ,'Saturday',		 If(DayOfWeek = 6 ,'Sunday'`<br>`))))))), DayOfWeek)` | Pole `DayOfWeek` może być używane w wizualizacji na przykład jako wymiar. W tabeli dni tygodnia są automatycznie sortowane według właściwego numeru kolejnego, a nie w porządku alfabetycznym. |
| `Dual(Pick( Priority , 'Low','Medium','High'), Priority)` | Pole `Priority` może być używane w wizualizacji na przykład jako wymiar. W tabeli pole `Priority` jest automatycznie sortowane według właściwego numeru kolejnego, a nie w porządku alfabetycznym. |
| `Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3))` | Pole `Date` może być używane w wizualizacji na przykład jako wymiar. Wartości tekstowe od `Q1` do `Q4` są tworzone i mają przypisywane wartości liczbowe od `1` do `4`. |
| `Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date))` | Pole `Date` może być używane w wizualizacji na przykład jako wymiar. W tym przykładzie tworzone są wartości tekstowe w formie `'2012-W22'`, a jednocześnie przypisywana jest wartość liczbowa odpowiadająca numerowi daty pierwszego dnia tygodnia, na przykład: `41057` |

Przykład: skrypt ładowania

| Przykład | Opis |
| --- | --- |
| Dodaj poniższe przykłady do skryptu i uruchom go.<br><br>`Load dual ( NameDay,NumDay ) as DayOfWeek inline` `[ NameDay,NumDay` `Monday,0` `Tuesday,1` `Wednesday,2` `Thursday,3` `Friday,4` `Saturday,5` `Sunday,6 ];` | Pole `DayOfWeek` może być używane w wizualizacji na przykład jako wymiar. W tabeli dni tygodnia są automatycznie sortowane według właściwego numeru kolejnego, a nie w porządku alfabetycznym. |
| `Load<br>Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter<br>AutoGenerate 1;` | Na tym przykładzie wyszukiwany jest bieżący kwartał. Jest on wyświetlany jako `Q1`, gdy funkcja Now jest uruchamiana w pierwszych trzech miesiącach roku, `Q2` w drugich trzech miesiącach itd. Jeśli jednak pole `Quarter` jest używane w sortowaniu, będzie zachowywać się jak jego wartość liczbowa: od 1 do 4. |
| `Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter` | Podobnie jak w poprzednim przykładzie pole `Quarter` jest tworzone z wartościami tekstowymi od `Q1` do `Q4` i są do niego przypisywane wartości liczbowe od `1` do `4`. Aby użyć go w skrypcie, należy załadować wartości dla `Date`. |
| `Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek` | W tym przykładzie tworzone jest pole `YearWeek` z wartościami tekstowymi formularza `2012-W22`, a jednocześnie przypisywana jest wartość liczbowa odpowiadająca numerowi daty pierwszego dnia tygodnia, na przykład: `41057`. Aby użyć go w skrypcie, należy załadować wartości dla `Date`. |

## Przykład — podstawy Dual

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

#### Wyrażenie wykresu

Przegląd

Zbiór danych zawiera dane dotyczące obsługi klienta. Chcesz sprawdzić liczbę połączeń w zależności od dnia tygodnia.

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:

  * `DayOfWeek`
  * `NoOfCalls`

Skrypt ładowania

```
Example:
Load * inline [
DayOfWeek, NoOfCalls
0, 25000
1, 30000
2, 27500
3, 32000
4, 23250
5, 28950
6, 32350
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nowy wykres słupkowy, a następnie dodaj wymiar, korzystając z jednej z poniższych metod:

1. W wyrażeniu wymiaru należy obserwować następujące elementy:

   ```
   =Dual(IF(DayOfWeek = 0, 'Monday',
   IF(DayOfWeek = 1, 'Tuesday',
   If(DayOfWeek = 2 ,'Wednesday',
   If(DayOfWeek = 3 ,'Thursday',
   If(DayOfWeek = 4 ,'Friday',
   If(DayOfWeek = 5 ,'Saturday',
   If(DayOfWeek = 6 ,'Sunday'
   ))))))), DayOfWeek) 
   ```

2. Ta metoda jest bardziej wydajna. W wyrażeniu wymiaru należy obserwować następujące elementy:

   ```
   =Dual(pick( DayOfWeek +1 , 'Monday','Tuesday','Wednesday', 'Thursday','Friday', 'Saturday','Sunday' ), DayOfWeek)
   ```

Utwórz następującą miarę:

* `=Sum(NoOfCalls)`, aby obliczyć liczbę wywołań.

Wyniki: wykres słupkowy pokazujące liczbę połączeń w zależności od dnia tygodnia

Wyniki: wykres słupkowy pokazujące liczbę połączeń w zależności od dnia tygodnia

Wyniki: wykres słupkowy pokazujące liczbę połączeń w zależności od dnia tygodnia ![Wykres słupkowy z wymiarem utworzonym przy użyciu funkcji Dual w wyrażeniu wymiaru](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/dual-barchart.png)

Wykres słupkowy pokazuje liczbę połączeń w zależności od dnia tygodnia. Automatycznie sortuje dni tygodnia w odpowiedniej kolejności.

## Przykład — scenariusz Duo

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

#### Wyrażenie wykresu

Przegląd

Zbiór danych zawiera informacje zwrotne dotyczące obsługi klienta. Chcesz posortować i wyświetlić opinie, pokazując najpierw negatywne odpowiedzi, a następnie obserwatorów.

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:

  * ResponseType
  * NoOfResponses

Skrypt ładowania

```
Example:
Load * inline [
ResponseType, NoOfResponses
1, 350
2, 560
3, 4350
4, 2350
5, 5350
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nowy wykres słupkowy i dodaj następujące wyrażenie do wymiaru.

* =Dual(pick( ResponseType , 'Very Bad','Bad','Average', 'Good','Very Good'), ResponseType)

Utwórz następującą miarę:

* =Sum(NoOfResponses), aby obliczyć liczbę odpowiedzi.

Wyniki: wykres słupkowy pokazujący liczbę odpowiedzi według typu odpowiedzi

Wyniki: wykres słupkowy pokazujący liczbę odpowiedzi według typu odpowiedzi

Wyniki: wykres słupkowy pokazujący liczbę odpowiedzi według typu odpowiedzi ![Wykres słupkowy z wymiarem utworzonym przy użyciu funkcji Dual w wyrażeniu wymiaru](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/dual-barchart2.png)

Wykres słupkowy pokazujący liczbę odpowiedzi według typu odpowiedzi Słupki są automatycznie sortowane od ujemnych do dodatnich. Typowi odpowiedzi, który jest wartością liczbową, przypisano opis tekstowy.