# Money#스크립트 및 차트 함수

Money#()는 로드 스크립트 또는 운영 체제(서식 문자열을 지정하지 않은 경우)에 설정된 서식을 사용하여 텍스트 문자열을 화폐 값으로 변환합니다. 사용자 지정 소수점 구분 기호 및 천 단위 구분 기호는 옵션 파라메타입니다.

구문:

Money#(text[, format[, dec\_sep [, thou\_sep ] ] ])

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| text | 평가할 텍스트 문자열입니다. |
| format | 문자열을 숫자 간격으로 변환할 때 사용할 예상 입력 서식을 설명하는 문자열입니다.<br><br>생략하면 `MoneyFormat`에 대해 데이터 로드 스크립트에 설정된 값이 사용됩니다.<br><br>`Money#` 함수는 다음과 같이 다양한 통화 구조에 대한 많은 형식 옵션을 지원합니다.<br><br>​`$#,##0.00`: 달러 기호와 소수점 두 자리를 추가합니다.<br><br>`€ #,##0`: 유로 기호를 추가하고 소수 자릿수는 표시하지 않으며, 유로 기호 뒤에 공백을 둡니다.<br><br>`​¥#,##0`: 소수점 자릿수 없이 일본 엔 기호를 추가합니다.<br><br>​`$#,##0;($#,##0)`: 음수 값을 괄호로 묶어서 표시합니다.<br><br>​`₣ #.##0,00`:​ 천 단위 구분 기호로 마침표와 소수점 구분 기호로 쉼표를 사용하여 스위스 프랑 기호를 추가합니다(예: `  ₣ 1.000,00 `).<br><br>​`R #,##0.00`: 소수점 두 자리로 시작하는 남아프리카 랜드 기호와 랜드 기호 뒤에 공백이 있습니다.<br><br>​`$ #,##0.000`: 달러 형식에 소수점 세 자리를 추가합니다. |
| dec\_sep | 소수점 구분 기호를 지정하는 문자열입니다. 생략하면 데이터 로드 스크립트에 설정된 `MoneyDecimalSep` 값이 사용됩니다.<br><br>`Money#` 함수는 다음과 같은 다양한 10진수 구분 기호 형식을 지원합니다.<br><br>쉼표 ​' `,` ': 예를 들어, 천 달러의 경우 `$1,000,00`입니다.<br><br>기간 ' `.` ':​ 예를 들어, `€ 1,000.00`입니다.<br><br>하이픈 ' `-` ': 소수점 구분 기호로 기존 마침표나 쉼표 대신 사용하면 `¥1,000-00`과 같은 값이 표시됩니다. |
| thou\_sep | 천 단위 구분 기호를 지정하는 문자열입니다. 생략하면 데이터 로드 스크립트에 설정된 `MoneyThousandSep` 값이 사용됩니다.<br><br>`Money#` 함수는 천 단위 구분 기호에 대한 다양한 옵션을 지원합니다.<br><br>마침표 ​' `.` ': 천 단위 구분 기호로 마침표를 사용합니다(일반적인 일부 유럽 형식). 쉼표 소수점 구분 기호와 결합하면 `$1.000,00`로 표시됩니다.<br><br>공백 ​' ': 천 단위 구분 기호로 공백을 사용하는데, 이는 일부 유럽 국가에서 일반적으로 사용됩니다. `€ 1 000.00`으로 표시됩니다.<br><br>밑줄 ​'`_`': 천 단위 구분 기호에 밑줄을 사용합니다. 이는 기술적 또는 특정 지역 형식에서 가끔 사용됩니다. `$1_000.00`와 같은 값을 표시합니다. |

`Money#` 함수는 일반적으로 `Num#` 함수와 비슷하게 동작하지만 화폐 서식의 경우 스크립트 변수에서 소수점과 천 단위 구분 기호의 기본값을 가져오거나 통화의 경우 시스템 설정을 가져옵니다.

예: 차트 표현식

| 예제 | 결과 |
| --- | --- |
| `Money#('35 648,37 kr' , '# ##0,00 kr',',',' ' )` | `MoneyFormat` 설정이 `# ##0,00 kr`인 경우 `35 648,37 kr`을 반환합니다. 이를 숫자로 올바르게 평가하려면 로드 스크립트에서 다음을 설정해야 합니다.<br><br><ul> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |
| `Money#( '$35,648.37', ' $#', '.', ',' )` | 다음이 설정된 경우 `$35,648.37`을 반환합니다.<br><br><ul> <li> <p><code>MoneyFormat</code>은 <code>$#</code>입니다.</p> </li> <li> <p><code>SET MoneyDecimalSep=',';</code> </p> </li> <li> <p><code>SET MoneyThousandSep=' ';</code> </p> </li> </ul> |

## 예 - Money# 기본 사항

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

#### 로드 스크립트

개요

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Example`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

* 데이터 테이블의 한 필드는 `MoneyValue`입니다.

* `Money#` 함수를 사용하여 데이터의 텍스트 값을 Qlik Sense가 유효한 값으로 인식할 수 있는 값으로 변환하는 선행 LOAD.

로드 스크립트

```
SET MoneyFormat='$ #,##0.00';
SET MoneyThousandSep=',';
Example:
Load *, Money#(MoneyValue, '# ##0,00 kr',',',' ') as FormattedMoneyValue;
Load * inline [
MoneyValue
35 648,37 kr
56 735,56 kr
] (delimiter is ';');
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `MoneyValue`

* `FormattedMoneyValue`

다음 측정값을 만듭니다.

* `=Money( FormattedMoneyValue, 'kr #,##0', '.' , ',' )`: `Money` 함수에 설정된 인수를 사용하여 형식화된 값을 화폐로 표시합니다.

* `=Num(FormattedMoneyValue)`: `Money#` 함수에 의해 처리된 후 숫자 값을 반환합니다.

Results table

| MoneyValue | FormattedMoneyValue | Money( FormattedMoneyValue, 'kr #,##0', '.' , ',' ) | Num(FormattedMoneyValue) |
| --- | --- | --- | --- |
| 56 735,56 kr | 56 735,56 kr | kr 56,736 | 56735.56 |
| 35 648,37 kr | 35 648,37 kr | kr 35,648 | 35648.37 |

결과 테이블은 다음 함수와 형식을 사용하여 값을 표시하는 방법을 보여 줍니다. `Money#`, `Money`, `Num`. 두 번째 열은 `'# ##0,00 kr',',',' '` 형식의 화폐로 값을 변경하기 위해 `Money#` 함수를 사용하여 계산된 차원 `FormattedMoneyValue`를 보여 줍니다. 세 번째 열은 `Money` 함수를 사용하여 `FormattedMoneyValue`의 통화 형식을 `'kr #,##0', '.' , ','`으로 변경합니다. 네 번째 열에서는 `Num` 함수를 사용하여 시스템 변수의 형식을 사용하여 `FormattedMoneyValue` 차원의 숫자 값을 표시합니다.

## 예 - Money# 시나리오

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

#### 로드 스크립트

개요

판매 주문 데이터 집합에는 다양한 통화를 사용하는 필드가 포함되어 있습니다. 이 예에서는 통화를 기준으로 판매량 값을 구분하고 합산하는 방법을 보여 줍니다.

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Example`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

* 데이터 테이블의 필드는 다음과 같습니다.

  * `TransactionID`

  * `Currency`
  * `Amount`

* `MoneyDecimalSep`, `MoneyFormat` 및 `MoneyThousandSep` 시스템 변수는 데모 목적으로 데이터에서 사용된 것과 다른 형식을 사용하도록 설정되었습니다.

* `TransactionID`, `Currency` 및 `Amount` 필드를 로드하고 다음 필드를 만드는 선행 LOAD:

  * `AmountValue`: 이 필드는 `Money#` 함수를 사용하여 수신한 텍스트를 시스템이 이해할 수 있는 값으로 변환합니다.

로드 스크립트

```
SET MoneyDecimalSep='-';
SET MoneyFormat='###0-00';
SET MoneyThousandSep=';';
Example:
LOAD
TransactionID,
Currency,
Amount,
IF(Currency = 'USD', Money#(Amount, '$#,##0.00','.',','),
IF(Currency = 'EUR', Money#(Amount, '€ #.##0,00',',','.'))) AS AmountValue
INLINE [
TransactionID, Currency, Amount
"TXN001", "USD", "$ 1,500.00"
"TXN002", "EUR", "€ 1.200,75"
"TXN003", "USD", "$ 1,750.50"
"TXN004", "EUR", "€ 950,00"
"TXN005", "USD", "$ 2,600.25"
];
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `TransactionID`

* `Currency`

* `Amount`

* `AmountValue`

다음 측정값을 만듭니다.

* `Num(AmountValue)`

결과 테이블

| TransactionID | Currency | Amount | AmountValue | Num(AmountValue) |
| --- | --- | --- | --- | --- |
| TXN001 | USD | $1,500.00 | $ 1,500.00 | 1500 |
| TXN002 | EUR | € 1.200,75 | € 1.200,75 | 1200.75 |
| TXN003 | USD | $ 1,750.50 | $ 1,750.50 | 1750.5 |
| TXN004 | EUR | € 950,00 | € 950,00 | 950 |
| TXN005 | USD | $ 2,600.25 | $ 2,600.25 | 2600.25 |

결과는 `Money#` 함수가 텍스트 값을 평가할 수 있는 화폐 숫자 값으로 변환하는 방법을 보여 줍니다. 예를 들어, `Amount` 필드의 값은 텍스트이며 왼쪽 정렬로 표시됩니다. 그러나 `Money#` 함수를 통해 이를 처리하여 새 필드 `AmountValue`를 만들면 이제 시스템이 이를 통화 숫자 값으로 인식합니다. `Num` 함수는 가장 오른쪽 열에서 사용되며, 이제 `AmountValue`의 통화 값을 평가하고 형식을 통화에서 숫자로 변경할 수 있습니다.