2016-11-28 95 views
-1

我想重新创建一个嵌套的if语句,我在Excel中创建一个水晶报表公式。我试图自己创建公式,并认为我已经想通了,直到我查看了原始数据,并且看到Crystal和Excel之间的计算已经关闭,尽管原始数据完全相同。我已经在这里和其他网站检查了电路板,并且找不到像我这样的初学者可以遵循的解决方案。我想要做的是根据具体问题调整公式的评分计算。我的两个问题的得分不同于数据中的其他问题。在Crystal Reports中重新创建一个嵌套的if语句

这里是我在Excel中的:

=IF(T4="How many calls have you taken on this product since your  
trainin",6,IF(T4="Did you experience any problems that your training did 
not prepa",IF(U4=1,0,6),(7-U4))) 

以下是我想出了在Crystal:

if {Command.Question_PK} = "55D0D569-7653-4553-B9C5-F858C5D318F9" Then 6 
Else if {Command.Question_PK} = "15948F36-E536-4C11-834A-BB5035754024" 
then if {Command.answer} = 1 Then 0 Else 6 
Else 7 - {Command.answer} 

望着数据集,看来水晶是不执行第一个if语句基本上是自动将该特定问题的得分自动调整为6,无论回答者给出了什么答案。

如何才能让我的计算与我在Excel中获得的数据完全相同?

+1

取出'excel'标记为问题与修复问题公式无关。 –

回答

0

我不知道你是如何实现你的输入。所以我只是写了完全相同的算法,你有什么在Excel中的C#。如果你在Visual Studio中创建控制台应用程序并运行它,你可以看到它是如何工作的。

using System; 

class Program 
{ 
static void Main(string[] args) 
{ 
    int result = 0; 
    int U4; 
    string T4; 
    string statement1 = "How many calls have you taken on this product since your trainin?"; 
    string statement2 = "Did you experience any problems that your training did not prepa"; 

    Console.WriteLine("Please type value of T4"); 
    T4 = Console.ReadLine(); 
    Console.WriteLine("Please type value of U4"); 
    U4 = int.Parse(Console.ReadLine()); 

    if (T4 == statement1) 
    { 
     result = 6; 
    } 
    else 
    { 
     if(T4 == statement2) 
     { 
      if (U4 == 1) 
      { 
       result = 0; 
      } 
      else 
      { 
       result = 6; 
      } 
     } 
     else 
     { 
      result = 7 - U4; 
     } 
    } 
    Console.WriteLine("result is : "+result); 
    Console.ReadLine(); 
} 
} 
+0

谢谢你马修。我能够将你把代码分解成我自己的公式并找到并解决问题的方式。再次感谢你。 –