我想创建一个SUMIFS条件,我可以参考这两个参数。我想能够说"如果第一个参数的月份和年份等于第二个参数的月份和年份。"但是,我所看到的SUMIFS的例子有一个条件,如" = Food",你可以在另一个参数上实际执行任何功能。如何实现这一目标?
答案 0 :(得分:2)
SUMPRODUCT比SUMIFS更强大,但更难理解。
bool servoDir = true;
int servoCnt = 90;
int servoInc = 1; // <-- exclusively use this to control speed.
int servoMin = servoCnt - 5; // <-- this range is a bit short for testing
int servoMax = servoCnt + 5;
void loop() {
// 'jog' the servo.
servoCnt += (servoDir) ? servoInc : -servoInc;
// past this point, all position jogging is final
if (servoCnt > servoMax)
{
servoCnt = servoMax;
servoDir = false;
}
else if (servoCnt < servoMin)
{
servoCnt = servoMin;
servoDir = true;
}
servo.write(servoCnt);
// 40ms sounds a bit short for tests.
// 100 ms should give you a 2 seconds (0.5Hz) oscillation
delay(100);
}
这将检查从1到20的所有行,以查看B列中的日期月份是否等于D1的月份,同样也是该年份的月份。如果两者相等,则它将该行的C列的值相加。
有关SUMPRODUCT如何运作的详情:
如果月份或年份不相等,则该行的第一个或第二个数组的结果将为零。这将乘以C列中的任何内容,结果为零。所以从该行求和的值为零;换句话说,它被忽略了。