# Dual - 脚本和图表函数

Dual() 用于将数字和字符串组合为单个记录，以便此记录的数字呈现形式可用于排序和计算，同时字符串值可用于显示。

语法：

Dual(text, number)

返回数据类型： 双

参数：

Dual 参数

| 参数 | 说明 |
| --- | --- |
| text | 与数字参数组合使用的字符串值。 |
| number | 与字符串参数中的字符串组合使用的数字。 |

在 QlikView 中，所有字段值都可能是对偶值。这意味着字段值即可以是数值，也可以是文本值。例如，一个日期即可包含数值 40908，也可以包含文本呈现形式 '2011-12-31'。

当几个数据项读入到一个具有不同字符串呈现形式但具有同一有效的数字呈现形式的字段中时，所有数据项都将共享遇到的第一个字符串呈现形式。

提示注释在其他数据被读入到相关字段中之前，dual 函数通常在脚本中使用，以便创建首字符串呈现形式，这将显示在列表框中。

示例 1:

在脚本中添加下例并运行。

`Load dual ( NameDay,NumDay ) as DayOfWeek inline` `[ NameDay,NumDay` `Monday,0` `Tuesday,1` `Wednesday,2` `Thursday,3` `Friday,4` `Saturday,5` `Sunday,6 ];` ` `

字段 DayOfWeek 可在图表中使用，例如，用作维度。在包含星期的表格中，每周的具体日期会自动按正确的数字顺序而不是按字母顺序排序。

示例 2:

`Load Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter AutoGenerate 1;`

本例提供当前季度。如果在一年的第一个三个月中运行 Now() 函数，则将第一个三个月显示为 Q1，将第二个三个月显示为 Q2，以此类推。但是，在用于排序时，字段 Quarter 将按其数值顺序排序：1 到 4。

示例 3:

`Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter`

与之前的示例一样，使用文本值 'Q1' 到 'Q4' 创建字段 Quarter，并为其分配数值 1 到 4。为在脚本中使用此字段，必须加载 Date 的值。

示例 4:

`Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek`

本例将创建一个字段 YearWeek，该字段具有 '2012-W22' 形式的文本值，同时分配与一周第一天的日期数对应的数值，例如：41057. 为在脚本中使用此字段，必须加载 Date 的值。