我正在尝试重新创建一个嵌套的if语句,该语句是我在Crystal报表公式中创建的。我试图自己创建公式并认为我已经弄明白了,直到我查看原始数据并看到Crystal和Excel之间的计算已经关闭,尽管原始数据完全相同。我已经检查了这里和其他网站的电路板,找不到像我这样的初学者可以遵循的解决方案。我想要做的是根据具体问题调整公式的评分计算。我的两个问题必须与数据中的其他问题进行不同的评分。
以下是我在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}
查看数据集,看起来Crystal没有执行第一个if语句,主要是将该特定问题的评分自动调整为6,无论答案者给出的答案是什么。
如果数据完全相同,我如何才能使计算与Excel中的计算相匹配?
答案 0 :(得分: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();
}
}