변수를 사용한 달러 기호 확장
로드 스크립트 또는 차트 표현식에서 달러 기호 확장의 변수를 사용하여 다음을 수행합니다.
-
텍스트 참조
-
숫자 값 참조
텍스트 변수
스크립트 또는 표현식 내의 텍스트 대체에 변수를 사용하는 경우 다음과 같은 구문이 사용됩니다.
$(variablename)
$(variablename) 은 변수의 값으로 확장됩니다. variablename이 존재하지 않을 경우 확장 결과는 빈 문자열이 됩니다.
예: 텍스트 변수 로드 스크립트
로드 스크립트
데이터 로드 편집기에서 다음 데이터를 인라인 로드로 로드합니다.
Set x = 'red'; // Assign the value "red" to variable x
Set y = 'blue'; // Assign the value "blue" to variable y
Set z = '$(x) $(y)'; // Expands x and y, returns "red blue" in variable z
// Expand x and y, return "red green blue" in variable MyString
Let MyString='$(x)'&' green '&'$(y)';
// Create table MyTable, load variable values for x, y, z into fields X, Y, Z
// Concatenate with variable MyString into field NewString
MyTable:
Load '$(x)' as X, '$(y)' as Y, '$(z)' as Z, '$(MyString)' as NewString autogenerate 1;
인라인 로드 사용에 대한 자세한 내용은 인라인 로드를 참조하십시오.
설명
이 예는 다음을 보여 줍니다.
-
변수 할당에서 변수를 확장하는 방법.
-
텍스트 작업과 결합된 변수를 확장하는 방법.
이는 가변 내용을 정적 문자열과 결합하는 동적 레이블 및 일반 텍스트 문자열을 만드는 데 유용한 설정입니다.
출력
Qlik Sense에서 다음 테이블을 만듭니다.
X | Y | Z | NewString |
---|---|---|---|
빨간색 | 파란색 | 빨간색 파란색 | 빨간색 파란색 녹색 |
로드 스크립트
데이터 로드 편집기에서 다음 데이터를 인라인 로드로 로드합니다.
Set vFunction = 'upper'; // Assign the string “upper” to variable vFunction
Set vField = 'String'; // Assign the string "String" to variable vField
Let vEvaluate = '$(vFunction)'&'('&'$(vField)'&')';
// The variable vEvaluate returns the value "upper(string)"
MyTable: // Create table called MyTable
Load *, $(vEvaluate) as Upper; // vEvaluate expanded as a dynamic expression
Load *, '$(vEvaluate)' as Expression; // vEvaluate expanded as string
Load * inline [
ID, String
1, abc
2, def
3, ghi
4, jkl ];
설명
Set 및 Let 문은 로드 스크립트의 변수에 값을 할당하는 데 사용됩니다. 이 둘의 차이점은 Set 문이 변수에 문자열을 할당하는 반면 Let 문은 결과 값을 변수에 할당하기 전에 문자열의 내용을 평가한다는 것입니다. 이 예의 로드 인라인 테이블은 변수 vEvaluate에 대한 서로 다른 평가를 텍스트 문자열 및 해당 표현식으로 시각화하는 데 사용되는 두 개의 선행 load 문으로 보완됩니다.
출력
Qlik Sense에서 다음 테이블을 만듭니다.
ID | String | Expression | Upper |
---|---|---|---|
1 | abc | upper(String) | ABC |
2 | def | upper(String) | DEF |
3 | ghi | upper(String) | HIJ |
4 | jkl | upper(String) | JKL |
예: 텍스트 변수 차트 표현식
로드 스크립트
데이터 로드 편집기에서 다음 데이터를 인라인 로드로 로드합니다.
// Create table SalesByCountry
SalesByCountry:
Load * Inline [
Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
Belgium, 2014, 182766.87
Belgium, 2015, 178042.33
Brazil, 2014, 174492.67
Brazil, 2015, 2104.22
Canada, 2014, 101801.33
Canada, 2015, 40288.25
Denmark, 2014, 45273.25
Denmark, 2015, 106938.41
Finland, 2014, 107565.55
Finland, 2015, 30583.44
France, 2014, 115644.26
France, 2015, 30696.98
Germany, 2014, 8775.18
Germany, 2015, 77185.68
];
변수
편집 모드의 시트에서 자산 패널의 변수 대화 상자를 엽니다.
다음 변수를 만듭니다.
이름 | 정의 |
---|---|
vSales | Sum(Sales) |
vSales2014 | Sum({<Year={2014}>}Sales) |
vSales2015 | Sum({<Year={2015}>}Sales) |
vSalesAllYears | $(vSales2014) +$(vSales2015) |
vSalesDifference | $(vSales2015)/$(vSales2014) - 1 |
확장을 보려면 KPI 차트를 만듭니다.
숫자 변수 확장
숫자 변수 확장의 경우 다음과 같은 구문이 사용됩니다.
(#variablename)
확장은 항상 변수의 숫자 값의 유효한 소수점 표현을 산출하며, 지수 표기도 가능할 수 있습니다(매우 크거나 작은 수의 경우). variablename이 존재하지 않거나 숫자 값을 포함하지 않는다면 NULL이 아닌 0으로 확장됩니다.
예: 숫자 변수 로드 스크립트
로드 스크립트
데이터 로드 편집기에서 다음 데이터를 인라인 로드로 로드합니다.
Set DecimalSep = ','; // Set decimal comma as separator for this example.
Let X = 7/2; // Assign the expression 7/2 to variable X.
MyTable: // Create an inline table labeled “MyTable”
Load 1 as ID, * inline [
DecimalComma DecimalPoint
$(X) $(#X) ]
(delimiter is '\t');
설명
#vVariable 확장은 항상 변수의 숫자 값에 대한 유효한 소수점 표현을 산출합니다. 점이 아닌 쉼표가 소수점 구분 기호로 사용되고 쉼표로 구분된 목록과 충돌할 위험이 있는 경우에 유용합니다.
로드 인라인 테이블에서 이러한 변수를 확장하는 주된 이유는 $(X)의 추가 인용이 필요하지 않기 때문입니다.
출력
Qlik Sense에서 다음 테이블을 만듭니다.
DecimalComma | DecimalPoint |
---|---|
3,5 | 3.5 |
로드 스크립트
데이터 로드 편집기에서 다음 데이터를 인라인 로드로 로드합니다.
// The three Set statements below are required to mimic and initialize
// Format specifiers that are relevant to this particular example
Set ThousandSep=' '; // Set example thousand separator
Set DecimalSep=','; // Set example decimal separator
Set TimestampFormat='YYYY-MM-DD hh:mm:ss'; // Set example date format
Let vRaw = today()-1/1440; // Timestamp minus one minute
Let vFormat = timestamp($(#vRaw)); // Formatted as timestamp
// Create MyTable as an inline table to expand variables as field values
MyTable:
Load * inline [
DecimalComma DecimalPoint FormattedNumber
$(vRaw) $(#vRaw) $(vFormat) ] (delimiter is '\t');
설명
#vVariable 확장은 항상 변수의 숫자 값에 대한 유효한 소수점 표현을 산출합니다. 점이 아닌 쉼표가 소수점 구분 기호로 사용되고 쉼표로 구분된 목록과 충돌할 위험이 있는 경우에 유용합니다. 또한 올바른 소수점 구분 기호 없이 변수를 확장할 때 소수 부분이 잘리기 때문에 숫자 정밀도에 영향을 미친다는 점에 유의해야 합니다.
로드 인라인 테이블에서 이러한 변수를 확장하는 주된 이유는 $(X)의 추가 인용이 필요하지 않기 때문입니다.
출력
Qlik Sense에서 다음 테이블을 만듭니다.
DecimalComma | DecimalPoint | FormattedNumber |
---|---|---|
44 470,00 | 44469.999305556 | 2021-09-18 23:59:00 |
로드 스크립트
데이터 로드 편집기에서 다음 데이터를 인라인 로드로 로드합니다.
// The three Set statements below are required to mimic and initialize
// format specifiers that are relevant to this particular example
Set ThousandSep=' '; // Set example thousand separator
Set DecimalSep=','; // Set example decimal separator
Set TimestampFormat='YYYY-MM-DD hh:mm:ss'; // Set example date format
// Assign a numerical value and a valid format specifier to vStart
Let vStart = timestamp#('2021-03-23 12:34:56','$(TimestampFormat)');
// Calculate timestamp (vStart + 3 hours) with valid decimal separator: "."
Let vStop = timestamp($(#vStart)+1/8,'YYYY-MM-DD hh:mm:ss');
// Create MyTable as an inline table to expand variables as field values
MyTable:
Load * inline [
StartTime StopTime
$(vStart) $(vStop) ] (delimiter is '\t');
// This is a tab delimited inline table
// Tab delimited tables are useful for avoiding conflicting list separators
설명
#vVariable 확장은 항상 변수의 숫자 값에 대한 유효한 소수점 표현을 산출합니다. 점이 아닌 쉼표가 소수점 구분 기호로 사용되고 쉼표로 구분된 목록과 충돌할 위험이 있는 경우에 유용합니다. 또한 올바른 소수점 구분 기호 없이 변수를 확장할 때 소수 부분이 잘리기 때문에 숫자 정밀도에 영향을 미친다는 점에 유의해야 합니다.
로드 인라인 테이블에서 이러한 변수를 확장하는 주된 이유는 $(X)의 추가 인용이 필요하지 않기 때문입니다.
출력
Qlik Sense에서 다음 테이블을 만듭니다.
StartTime | StopTime | |
---|---|---|
2021-03-23 12:34:56 | 2021-03-23 15:34:56 |
대체 상태를 참조하는 변수 확장
변수는 하나의 값만 가지며 이 값은 모든 대체 상태에서 사용됩니다. 변수를 확장하면 변수가 생성된 위치 및 개체 상태에 관계없이 값도 확장됩니다.
변수가 계산된 변수인 경우, 즉 정의가 등호 기호로 시작하는 경우 변수 정의에서 대체 상태를 지정하지 않는 한 기본 상태에서 계산이 수행됩니다.
예를 들어 MyState라는 상태와 vMyVar라는 변수가 있는 경우:
vMyvar: =only({MyState}MyField)
대체 상태 이름에 대한 명시적 참조가 있는 변수 정의 내용에 따라 변수 내용이 평가되는 상태가 결정됩니다.