Crystal reports 晶体相当于Tableau';s查找函数

Crystal reports 晶体相当于Tableau';s查找函数,crystal-reports,tableau-api,Crystal Reports,Tableau Api,我正在尝试重新创建Crystal Reports中描述的下表: 用于生成表的示例数据: 该表提供了有关4个指标的信息:冰棒销售额、冰棒预期销售额(预算)、汽水销售额和汽水预期销售额(预算)。它显示当月的冰棒销售额和苏打水销售额及其上一年的值,并比较当前值与预算值和上一年值的差异 在Tableau中,我使用了一个计算字段,该字段利用Tableau的查找函数(“查找(总和(冰棒销售),-12)”)来获取12个月前冰棒销售的价值。如何对公式字段执行相同操作?在报表页脚中使用运行总计。这些类似于特殊

我正在尝试重新创建Crystal Reports中描述的下表:

用于生成表的示例数据:

该表提供了有关4个指标的信息:冰棒销售额、冰棒预期销售额(预算)、汽水销售额和汽水预期销售额(预算)。它显示当月的冰棒销售额和苏打水销售额及其上一年的值,并比较当前值与预算值和上一年值的差异


在Tableau中,我使用了一个计算字段,该字段利用Tableau的查找函数(
“查找(总和(冰棒销售),-12)”
)来获取12个月前冰棒销售的价值。如何对公式字段执行相同操作?

在报表页脚中使用运行总计。这些类似于特殊的汇总字段,您可以在其中选择要包含在汇总中的项目以及要排除的项目

在“使用公式”部分中,输入以下内容,以便仅评估从现在到一年前的记录:

{SourceData$.Date} = DateAdd("yyyy", -1, {?ReportDate})

我发现一篇文章建议如下,但它为我返回0:如果Month(DateValue({table.Date}))=Month({?ReportDate})和Year(DateValue({table.Date}))=Year(DateAdd(“m”,-12,{?ReportDate})),那么{table.PopsicleSales}你可能无法用一个公式来完成。Crystal一次评估一件事情,当它转到下一个记录时,几乎“忘记”了它们。您需要一个运行总计。我尝试在SourceData$.PopsicleSales上使用以下计算公式的运行总计(其中6/30/2016是报表运行日期,作为参数传递并用作报表选择标准):{SourceData$.date}>=DateAdd(“yyyy”,-1,#6/30/2016#,它在2016年6月30日返回了冰棒价值,而不是2015年6月30日的价值。在我修改了评估公式并调整了报告(见下文)后,4444建议的运行总体想法起了作用。感谢您的建议。然而,运行总似乎不是我所需要的。我需要上一年同月冰棒销售的离散值(例如,如果您运行2016年6月30日的报告,则为2015年6月30日;如果您运行2016年2月29日的报告,则为2015年2月28日)。我尝试了你的建议,运行总数返回了报告运行日期的冰棒销售额。4444,你的建议是正确的。我必须将求值公式更改为{SourceData$.Date}=DateAdd(“yyyy”,-1,{?ReportDate})。然后我清除了记录选择条件,这将检索的数据限制在一行。最后,我抑制了除报告日期({SourceData$.date}{?ReportDate})之外的所有日期的详细信息部分。