我已经找到了这个答案但是没有找到任何有用的答案,所以如果这是一个重复的问题我会道歉。
我使用的是Excel 2010,并且在一个工作簿中有两张表。第一张表格保存了有关个别会员的大部分信息,是我使用公式的地方。第二张表保存有关每个成员的数据。用法。每行代表一个人。我正在尝试收集第二张表中列出的一个人的所有实例,并将其放在第一张单元格中。
我使用了sumif函数,它完全适用于我使用它的第一个人。之后,拖动框会更改公式的范围和sum_range以及条件。我希望标准更改为下一行中的单元格,但我需要范围和sum_range保持相同的每个单元格。如果我从第一个单元格复制公式并将其粘贴到第二行,则没有任何变化。
关于如何使sumif公式在整个列上工作而不改变范围和sum_range的任何想法?或者有更简单的方法吗?请记住,第二张表将随着时间的推移而扩展,以包含越来越多的实例,这些实例将需要包含在未来的计算中。
答案 0 :(得分:0)
让我们说你的范围是double ncVal;
double waVal;
double ncOffset;
double waOffset;
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
ncOffset = 0;
waOffset = 0;
ncVal = double.Parse(dt.Rows[i]["NC"].ToString());
waVal = double.Parse(dt.Rows[i]["WA"].ToString());
// If values are within 10 points of each other, offset by 5 each positive/negative.
if ((ncVal - waVal) < 0.10)
{
if ((ncVal - waVal) > 0)
{
if (ncVal < 1)
{
ncOffset = 0.03;
waOffset = -0.03;
}
else
{
ncOffset = -0.03;
waOffset = 0.03;
}
}
}
else
{
if ((waVal - ncVal) < 0.10)
{
if ((waVal - ncVal) > 0)
{
if (ncVal < 1)
{
waOffset = 0.03;
ncOffset = -0.03;
}
else
{
waOffset = -0.03;
ncOffset = 0.03;
}
}
}
}
// Data values.
str.Append("data.setValue(" + i + "," + 0 + "," + "'" + dt.Rows[i]["WeekNum"].ToString() + "');");
str.Append("data.setValue(" + i + "," + 1 + "," + "'" + dt.Rows[i]["NC"].ToString() + "');");
str.Append("data.setValue(" + i + "," + 2 + "," + "'" + dt.Rows[i]["WA"].ToString() + "');");
str.Append("data.setValue(" + i + "," + 3 + "," + "'" + dt.Rows[i]["Std Cap"].ToString() + "');");
// Invisible line to set annotations off of.
str.Append("data.setValue(" + i + "," + 4 + "," + "'" + (ncVal + ncOffset) + "');");
// Annotation value; Multiply value by 100 to get percentage.
str.Append("data.setValue(" + i + "," + 5 + "," + "'" + String.Format("{0}%", (100 * ncVal)) + "');");
// Invisible line to set annotations off of.
str.Append("data.setValue(" + i + "," + 6 + "," + "'" + (waVal + waOffset) + "');");
// Annotation value; Multiply value by 100 to get percentage.
str.Append("data.setValue(" + i + "," + 7 + "," + "'" + String.Format("{0}%", (100 * waVal)) + "');");
}
,所以要完全锁定它,只需将其更改为A1:A3
。