Usage
view: view_name { dimension: field_name { value_format:"$#.00;($#.00)" } }
Hierarchy
value_format |
Possible Field Types
Dimension, Measure
Accepts
A string containing Excel-style formatting
|
Definition
The value_format
parameter lets you format data values in Looker using Excel-style formats. You can use value_format
in the following ways:
- On its own, at the field level, to apply Excel-style formatting directly to a specific dimension or measure
- As a subparameter of the
named_value_format
parameter, at the model level, to create a reusable custom format that can be applied to multiple fields
Applying value_format
directly to dimensions and measures
The value_format
parameter can be used on both dimensions and measures. To apply Excel-style formatting to dimensions via value_format
, the dimension type must be number
. To apply Excel-style formatting to measures via value_format
, make sure the measure is numeric and not of type: string
. For example:
dimension: order_amount {
type: number
sql: ${TABLE}.order_amount ;;
value_format: "$#.00;($#.00)"
}
measure: total_order_amount {
type: sum
sql: ${order_amount} ;;
value_format: "$#.00;($#.00)"
}
Using value_format
to define a reusable custom format
For information about using value_format
with named_value_format
to define reusable formats, see the named_value_format
parameter's documentation page.
Default formatting options
If you prefer to apply one of Looker's built-in value formats, you can choose from the formats listed on the Default Format Names section of the value_format_name
parameter's documentation page. See that page for instructions on using value_format_name
to apply built-in formats.
Common formatting strings
value_format
accepts an Excel-style formatting string.
The formatting used with the
value_format
parameter is the same as formatting used in the Value Format field in visualizations, except that thevalue_format
parameter requires the formatting string to be enclosed in double quotes. See the Column chart options documentation page for information about value formats in visualizations.
You can read Excel's complete guide about how to specify these formats in their documentation. However, at this time, date formatting, color formatting, and hexadecimal conversion are not supported in Looker.
Some of the most common formatting options are shown here. Note that some special characters, such as international currency symbols, must be enclosed in double quotes.
value_format: "0" # Integer (123)
value_format: "*00#" # Integer zero-padded to 3 places (001)
value_format: "0 \" String\"" # Integer followed by a string (123 String)
# Note \"String\" can be replaced with any other word
value_format: "0.##" # Number up to 2 decimals (1. or 1.2 or 1.23)
value_format: "0.00" # Number with exactly 2 decimals (1.23)
value_format: "*00#.00" # Number zero-padded to 3 places and exactly 2 decimals (001.23)
value_format: "#,##0" # Number with comma between thousands (1,234)
value_format: "#,##0.00" # Number with comma between thousands and 2 decimals (1,234.00)
value_format: "0.000,,\" M\"" # Number in millions with 3 decimals (1.234 M)
# Note division by 1 million happens automatically
value_format: "0.000,\" K\"" # Number in thousands with 3 decimals (1.234 K)
# Note division by 1 thousand happens automatically
value_format: "$0" # Dollars with 0 decimals ($123)
value_format: "$0.00" # Dollars with 2 decimals ($123.00)
value_format: "\"€\"0" # Euros with 0 decimals (€123)
value_format: "$#,##0.00" # Dollars with comma btwn thousands and 2 decimals ($1,234.00)
value_format: "$#.00;($#.00)" # Dollars with 2 decimals, positive values displayed
# normally, negative values wrapped in parenthesis
value_format: "0\%" # Display as percent with 0 decimals (1 becomes 1%)
value_format: "0.00\%" # Display as percent with 2 decimals (1 becomes 1.00%)
value_format: "0%" # Convert to percent with 0 decimals (.01 becomes 1%)
value_format: "0.00%" # Convert to percent with 2 decimals (.01 becomes 1.00%)
For an example of more advanced conditional formatting with the value_format
parameter, see the Conditional formatting using value_format
Best Practices page.
Common challenges
Losing decimals when dividing
One common SQL quirk that arises when using value_format
is the way that SQL handles integer math. If you divide 5 by 2, most people expect the result to be 2.5. However, many SQL dialects will return the result as just 2, because when it divides two integers it also gives the result as an integer. To address this, you can multiply the numerator by a decimal number (like 1.0 or 100.0) to force SQL into returning a decimal result. For example:
measure: active_users_percent {
type: number
sql: 100.000 * ${active_users} / ${users} ;;
value_format: "0.000"
}
Using value_format
with the number_format
user attribute
If you use value_format
to format fields in your models, the number format selected in the number_format
user attribute is applied on top of the format applied with value_format
. For an example, and to learn more, visit the Localizing number formatting documentation page.