在 Webi 中连接两个数字(不是相加)

问题描述 投票:0回答:1

我需要比较每个program year的第一次、中期和最后一次考试。这样做的测量涉及两个变量(1)级别(文本)和(2)分数(数字)。

有 52 个级别,我将其解释为一个变量,该变量将每个级别转换为一个数字:

([IReady - Level #])
。我想加入
([IReady - Level #])
变量和与每个测试相关的分数:
([Total Reading - Score_1965])
.

例如,我的

([IReady - Level #])
变量将名为
Early 1
的级别转换为数字 4。并将下一个级别
Mid 1
转换为数字 5。因此,一个人在一个计划年内进行的三项测试的原始结果可能看起来像这样:

  • Test1 级别和分数:早期 1 和 301
  • Test2 级别和分数:中 1 和 299
  • Test3 级别和分数:早期 1 和 300

但是,目标是使用我的

([IReady - Level #])
变量,与分数
([Total Reading - Score_1965])
结合,以便这些测试结果如下所示 - 创建一个可以轻松相互比较并可靠地反映内部和内部的新数字关卡进度:

  • Test1 等级和分数:4301
  • Test2 等级和分数:5299
  • Test3 等级和分数:4300

下面的公式有效(这个变量的名字是

[zzLevel + Score concatenated]

=

[IReady - Level #]
+ "" +
[Total Reading - Score_1965]

...但它会将结果数字转换为字符串,即使在我使用了如下所列的

ToNumber
函数之后也是如此:

  • 在较大的变量上

    =`ToNumber([zzLevel + Score concatenated]`
    
  • [IReady - Level #]
    变量内

    =

    [IReady - Level #]=ToNumber(((If ([Total Reading - Level_1966] InList( "Emerging K"; "emerging K"; "emerging k")) Then 0
    ... (而且我发现,即使要让它起作用,我也必须将
    [IReady - Level #]
    变量转换为“维度”而不是“度量”,以便将其作为数字读取。)但确实如此,成功,现在将此变量视为数字。所以现在我只需要弄清楚如何连接两个数字。

有人可以帮我把结果变成数字吗?接下来我可能会有疑问,但这是最关键的方面。

更新:在同事的帮助下,我找到了另一种方法来完成我需要的——我将我的等级#乘以 1,000:

([IReady - Level #]*1000)
...这样我就可以将新变量添加到分数。现在,结果为“Early 1”且分数为“301”的测试等于总和:“4,301”。但是,我仍然很好奇是否有一种方法可以连接两个数字(即数字“100”+“401”= 100401——作为数字与字符串)。所以我仍然欢迎任何想法。

business-objects webi
1个回答
0
投票

有一个将数字转换成字符串的函数:FormatNumber()

但是,如果您实际上并不想格式化任何东西,而只是想将数字转换为字符串以进行您提到的那种连接,最简单的方法就是向其中添加一个字符串。如果您使用空字符串,则可以使用 ToNumber 将其转换回数字。例如:

  • ="Number: " + 100
    - 将变量分配给“Number:100”的字符串值
  • =""+100
    - 将变量分配给字符串值“100”
  • =100+""
    - 还将一个变量分配给字符串值“100”
  • =100+""+401
    - 将变量分配给字符串值“100401”
  • =""+100+401
    - 还将一个变量分配给字符串值“100401”
  • =100+401+""
    - 将变量分配给“501”的字符串值(从左到右计算意味着它在遇到字符串之前不会转换为字符串,因此它添加数字然后转换)
  • =ToNumber(100+""+401)
    - 将计算为数值 100401
© www.soinside.com 2019 - 2024. All rights reserved.