# 现实中的例子

Qlik Sense 中的可视化可为您提供您数据中的见解。在您的图表中使用表达式可产生特别适用于您的工作的结果。Qlik Sense 中函数的范围可让您自定义自己的表达式以满足自己的需求，即使选项尚不可用。

## 计算总利润值百分比

我们将利润值定义为我们的销售额和进行这些销售的成本之间的差值。我们将计算每个月的利润值，以及每月销售额的多少百分比是我们的利润值。

要计算利润百分百，我们可以使用以下表达式：

(Sum(Sales)-Sum(Cost))/Sum(Sales)

可将表达式进一步简化

1-Sum(Cost)/Sum(Sales)

在应用程序内，在 Examples from real life 工作表上，您将找到标题为 Margin 的表格。

执行以下操作：

1. 选择标题为 Margin 的可用表格。  
   属性面板打开。
2. 单击添加列并选择度量。
3. 单击 the 表达式 icon 符号。  
   表达式编辑器打开。
4. 输入以下内容：Sum(Sales)
5. 使用表达式另外添加三个度量：Sum(Cost)、Sum(Sales) - Sum(Cost) 和 1 - Sum(Cost)/Sum(Sales)。
6. 单击应用。

表格示出销售额的总和，以及每个月成本的总和，以及以金额和百分比形式表示的计算的每月利润值

![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_examples_table1.png)

信息注释作为最佳实践，请确保您的数据格式正确。在该情况下，在每个列中我们将更改标签以表示计算。在具有货币值的列中，我们将数字格式更改为货币，并将格式样式更改为 $ #,##0;-$ #,##0。将例如百分比的数字格式设置为数字，并将格式设定设置为简单和 12%。

您可以看到基于销售额和成本的每个月的计算的利润值。您还可以看到销售额有多少百分比构成利润值。

在应用程序数据中，我们已经有每月利润值的数据。这是在初始数据和我们的计算结果之间进行比较的不错机会。

执行以下操作：

1. 单击添加列并选择度量。
2. 单击 the 表达式 icon 符号。  
   表达式编辑器打开。
3. 输入以下内容：Sum(Margin)
4. 用表达式另外添加一个度量：(Sum(Sales) - Sum(Cost)) - Sum(Margin)
5. 单击应用。

利润值表格具有来自数据集的每月利润值的额外列，及其与计算的利润值的差值。

![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_examples_table2.png)

计算的利润值列中的一些值不同于直接源自我们数据的利润值列中的值。利润值差异栏清楚地表明，这是在 2014 年期间的月份中发生的。计算出的利润值和数据集得出的利润值之间的差异很小，但它发生在特定年份，这一事实产生了一些问题。在这个年份有什么发生了变化？调查数据并提出正确的问题可能对您的业务很重要。

## 开发票延迟

在本例中，我们将使用基于一家公司的数据，该数据收集发票的创建日期和所生产货物的承诺交货日期。这两个日期并不总是一样的。另外一些发票可能具有两个承诺的交货日期。最早日期始终与发票日期相同，由公司使用的开发票系统自动创建。最晚承诺交货日期是公司与客户约定交货的日期。

我们先把这些日期加在一张表上。

在 Examples from real life 工作表上您将找到标题为 Invoicing delays 的表格。

执行以下操作：

1. 选择标题为 Invoicing delays 的可用表格。  
   属性面板打开。
2. 单击添加列并选择度量。
3. 单击 the 表达式 icon 符号。  
   表达式编辑器打开。
4. 输入以下内容：Only([Invoice Date])
5. 用表达式另外添加一个度量：Max([Promised Delivery Date])
6. 单击应用。

示出承诺的交货日期和每个发票的发票日期的表格

![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_examples_table3.png)

信息注释作为最佳实践，请确保您的数据格式正确。在显示日期的列中，将数字格式设置为日期，并将格式设置为简单和 2014 年 2 月 17 日。

您可以看到发票日期和承诺的交货日期并非始终相同。当有两个承诺的交货日期时，我们需要使用最晚的一个来计算。

让我们计算一下发票日期和承诺交货日期之间的差值。我们将使用以下表达式：

Max([Promised Delivery Date])-[Invoice Date]

有三个场景：

* 两个日期相同，并且表达式的结果为 0。
* 承诺产品在创建发票之后交货，并且结果是正整数。
* 在承诺产品交货之后创建发票，并且结果是负整数。

执行以下操作：

1. 单击添加列并选择度量。
2. 单击 the 表达式 icon 符号。  
   表达式编辑器打开。
3. 输入以下内容：Max([Promised Delivery Date])-[Invoice Date]
4. 单击应用。

表格显示每张发票的承诺交货日期和发票日期以及从开发票到承诺交货的天数

![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_examples_table4.png)

信息注释根据最后列将表格排序，命名为 Days from invoicing to delivery。

在日期之间存在一系列的差值。负值表示发票延迟。负值表示承诺的交付在创建发票后完成。

让我们计算在承诺的交货日期之后创建的发票数。

执行以下操作：

1. 单击添加列并选择度量。
2. 单击 the 表达式 icon 符号。  
   表达式编辑器打开。
3. 输入以下内容：Count(Distinct If(Aggr(Max([Promised Delivery Date])&lt;[Invoice Date],[Invoice Number]),[Invoice Number]))
4. 单击应用。

信息注释或者我们可使用 Sum(Aggr(If(Max([Promised Delivery Date])-[Invoice Date]&lt; 0, 1, 0), [Invoice Number]))。

开发票延迟表格以额外列示出延迟的发票数。

![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_examples_table5.png)

最后列作为发票总数百分比形式的 KPI 将更有意义。

执行以下操作：

1. 创建 KPI。
2. 单击添加度量项。单击 the 表达式 icon 符号。  
   表达式编辑器打开。
3. 输入以下内容：Count(Distinct If(Aggr(Max([Promised Delivery Date])&lt;[Invoice Date],[Invoice Number]),[Invoice Number]))/Count([Invoice Number])
4. 单击应用。

KPI 示出延迟发票的百分比。

![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_examples_table6.png)

让我们计算开发票中的平均延迟。

执行以下操作：

1. 新建 KPI。
2. 单击添加度量项。单击 the 表达式 icon 符号。  
   表达式编辑器打开。
3. 输入以下内容：Avg(Aggr(If(Max([Promised Delivery Date])&lt;[Invoice Date],(Max([Promised Delivery Date])-[Invoice Date])), [Invoice Number]))
4. 单击应用。

KPI 示出开发票中的平均延迟

![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_examples_table7.png)

## 谢谢！

现在，您已完成本教程的学习，希望您已获得有关 Qlik Sense 中图表表达式的一些基本知识。请访问我们的网站获取更多应用程序的灵感。