公式(5)文本

学习目标

完成本单元后,您将能够:

  • 描述什么是文本类型。
  • 将文本值转换为其他数据类型或从其他数据类
  • 描述使用文本类型的公式的用例。
  • 使用文本类型创建一个公式。

公式中的文本介绍

有时,让您的组织中的信息一目了然,最简单的方法就是将其显示为文本。使用文本返回类型的公式可以连接文本值,将数字和日期转换为文本,或者有条件地显示文本。

你可以做的最简单的事情是将两个文本字符串与运算符&连接起来。例如,您可以通过组合名字和姓氏来显示联系人的全名。

FirstName & " " & LastName
将文本值放在一起时,请考虑必要的空格,以便字符串不会显示为废话 – “Jane Doe”比“JaneDoe”更具可读性。
 

常见的文本函数和操作符

Salesforce带有许多功能和操作员,可以使用公式中的文本进行工作。使用公式,可以将其他数据类型转换为文本并将文本值连接在一起,或在文本字段中搜索特定的字符串。

转换为文本值和从文本值转换

TEXT()将百分比,数字,日期,日期/时间,选取列表或货币字段转换为文本。 TEXT()返回没有任何格式,逗号或货币符号的输出。例如,TEXT(percent_value),如果percent_value设置为30%,则返回0.3。

当TEXT()收到日期或日期/时间值时,它返回一个带有标准日期或日期/时间格式的字符串。例如,如果date_value对应于2015年3月17日,则TEXT(date_value)返回2015-03-17。对于datetime_value 2015年3月17日下午5点,TEXT(datetime_value)返回2015-03-17 17:00:00Z。 Z表示GMT-TEXT()返回的时间总是返回格林尼治标准时间的日期/时间值,而不是当前用户或组织的时区。

您也可以使用VALUE()以另一种方式转换值,该值使用Text值并返回一个Number。如果VALUE()接收到的值不是一个数字,包括小数点或减号(负号)以外的任何特殊字符,则会显示#Error!例如,如果text_value是$ 500,则VALUE(text_value)将返回一个错误。如果text_value为空,则VALUE()也会返回错误。

其他文字功能

如果文本以compare_text开头,则BEGINS(text,compare_text)返回true。如果compare_text是文本中的任何位置,则CONTAINS(text,compare_text)将返回true。这些功能对于根据文本字段有条件地显示信息很有用。

函数SUBSTITUTE(text,old_text,new_text)用new_text替换old_text的任何实例,就像文本编辑器中的find和replace函数一样。

Salesforce包含其他用于处理公式中文本和格式化的函数。有关更多信息,请参阅Salesforce联机帮助中的公式运算符和函数。

在公式中使用文本类型

分配客户评级

通常,使用文本返回类型的公式显示很难量化的信息。例如,您可以使用文本公式来确定铅是热,暖还是冷。我们将编写一个既使用条件逻辑又使用ISPICKVAL()函数来返回主角评分的公式。

在这个例子中,我们根据其收入,国家和来源对潜在客户进行评估。

  • Hot—AnnualRevenue大于100万美元,Country是美国,LeadSource是合作伙伴推荐。
  • Warm—AnnualRevenue 大于100万美元,Country是美国,LeadSource是购买清单或Web。
  • Cold—帐户不符合任何这些条件。

此公式使用一系列IF(),AND()和OR()语句来检查这些条件,并使用ISPICKVAL()评估Lead Source字段。该公式还使用CASE()语句来检查国家/地区。如果该国是美国,美国,美国或美国,则CASE()声明将返回美国。否则,它返回NA(不适用)。

选择树帮助我们更容易地遵循公式的逻辑流程。

This choice tree helps us visualize the lead rating formula.
  1. 在安装程序中,使用快速查找框来查找 Object Manager.
  2. 点击 Lead | Fields & Relationships 然后单 New.
  3. 选择Formula 并单击 Next.
  4. Field Label, 输入 Rating. 字段名称自动填充。
  5. 选择 Text 并单击 Next.
  6. 输入以下公式:
    IF(
      AnnualRevenue > 1000000 &&
      CONTAINS(CASE(Country, "United States", "US", "America", "US", 
        "USA", "US", "US", "US", "NA"), "US"),
      IF(
        ISPICKVAL(LeadSource, "Partner Referral"), "Hot",
        IF(
          ISPICKVAL(LeadSource, "PurchasedList") ||
          ISPICKVAL(LeadSource, "Web"),
          "Warm", "Cold"
        )
      ), "Cold"
    )

根据潜在客户的特征,新配方字段评分显示“热”,“热”或“冷”。

用CASE()显示图像

带有文本返回类型的公式对于不仅仅是文本而言是有用的 – 您也可以使用它们来显示图像。图像使信息一目了然,抓住用户的眼睛不仅仅是文本。让我们编写一个公式,使用您刚刚创建的评级字段以图形方式显示潜在客户评分为零星,一星,三星或五颗恒星。

IMAGE()函数最多需要四个参数。 IMAGE(image_url,alternate_text,height,width)以可选的height和width参数指定的尺寸显示由image_url指定的图像。如果图像无法显示,则该功能显示alternate_text。

如果主角评级是

  • Hot, 公式显示五颗星
  • Warm,公式显示三颗星
  • Cold, 公式显示一颗星

如果主角等级为空白,则公式不会显示星号。

使用文本返回类型和名称星级创建公式字段。在高级公式编辑器中,输入:

IMAGE(
  CASE(Rating__C,
    "Hot", "/img/samples/stars_500.gif",
    "Warm", "/img/samples/stars_300.gif",
    "Cold", "/img/samples/stars_100.gif",
    "/img/samples/stars_000.gif"),
"Unknown")
此公式使用内置于Salesforce中的图像,但是您可以使用自己的图像,方法是首先从“文档”选项卡上载图像。

文本示例

  1. 此公式使用美国帐户的帐单州/省字段将其分类为北,南,东,西或中央。
    IF(ISBLANK(BillingState), "None",
    IF(CONTAINS("AK:AZ:CA:HA:NV:NM:OR:UT:WA", BillingState), "West",
    IF(CONTAINS("CO:ID:MT:KS:OK:TX:WY", BillingState), "Central",
    IF(CONTAINS("CT:ME:MA:NH:NY:PA:RI:VT", BillingState), "East",
    IF(CONTAINS("AL:AR:DC:DE:FL:GA:KY:LA:MD:MS:NC:NJ:SC:TN:VA:WV", BillingState), "South",
    IF(CONTAINS("IL:IN:IA:MI:MN:MO:NE:ND:OH:SD:WI", BillingState), "North", "Other"))))))
  2. 该公式嵌入HYPERLINK()函数的链接。一般来说,HYPERLINK(url,display_text,target)显示一个到display_text的链接。可选的目标参数决定了单击链接时网页的显示方式。如果您将目标保留为空白,则默认情况下链接会在新的浏览器窗口中打开。
    HYPERLINK("https://www.salesforce.com", "Salesforce")
  3. 此公式接受Email字段并使用它来创建一个URL。该公式使用FIND()和SUBSTITUTE()在电子邮件地址中查找@符号,并用www替换它的左侧所有内容。
    SUBSTITUTE(Email, LEFT(Email, FIND("@", Email)), "www.")
    文本公式的常见错误

将值转换为文本。请确保在公式中使用它之前检查一个字段的类型。例如,以前的Salesforce管理员可能已经创建了一个将日期保存为文本值的自定义字段。如果是这种情况,可以使用TEXT()或DATEVALUE()来同时处理文本和日期值。

公式字段帮手

使用助手公式字段是使公式简洁易懂的好方法。辅助字段只做更大计算的一部分,并由结束公式字段引用。您可以使用任何公式类型的帮手公式字段,但现在我们来看一个示例。

假设您要编写名为Case_Category__c的文本公式,该公式根据案件已打开的时间长短显示案件的类别(绿色,黄色或红色)。通常情况下,你可能会写这样的东西。

IF(((NOT(IsClosed)) && (TODAY() - DATEVALUE(CreatedDate) > 20)), "RED",
 IF((NOT(IsClosed)) && (TODAY() - DATEVALUE(CreatedDate) > 10), "YELLOW",
 "GREEN"))
您可以通过将计算个案年龄的逻辑放入另一个公式字段来简化此公式。我们称这个字段为Case_Age_In_Days__c。
TODAY() - DATEVALUE(CreatedDate)
然后,我们可以像这样重写Case_Category__c。
IF(((NOT(IsClosed)) && (Case_Age_In_Days__c > 20)), "RED",
 IF((NOT(IsClosed)) && (Case_Age_In_Days__c > 10), "YELLOW",
 "GREEN"))
个公式不仅更短,更易于理解,而且还可以在需要计算案例年龄的任何地方重复使用助手公式。真棒!