我坚持使用sumif公式。我想如果我使用了一些索引和匹配的混合我可以让它工作但我在过去一小时内无法这样做!
我需要根据门牌号码和2个日期从数字表中加总。例如,我需要在08-05-17和13-05-17之间对房屋1的数字求和。
我之前对索引和匹配的经验是,我只使用它来获取一个特定的数字。
答案 0 :(得分:3)
OFFSET和INDIRECT是易变的,这可以通过INDEX / MATCH
实现override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//Set cell contents
let cell = tableView.dequeueReusableCell(withIdentifier: cellId)
let imageView = cell?.viewWithTag(0) as! UIImageView
var price:UILabel = cell?.viewWithTag(2) as! UILabel
var name:UILabel = cell?.viewWithTag(1) as! UILabel
let amount = cell?.viewWithTag(3) as! UILabel
name.text = productList[indexPath.row].name
price.text = "" + (productList[indexPath.row].price?.description)!
let imageDict:NSDictionary = productList[indexPath.row].imageName!
let image = downloadImageProductFromFirebase(append: imageDict["hash"] as! String)
imageView.image = image
return cell!
}
作为INDEX中第三个标准的=SUMIFS(INDEX(Sheet1!$W:$AC,MATCH("House " & B4,Sheet1!$A:$A,0),0),Sheet1!$W$3:$AC$3,"<=" & $AE4,Sheet1!$W$3:$AC$3,">=" & $AD4)
将返回MATCH选择的行中的所有列。
此公式为非易失性且非数组。
答案 1 :(得分:0)
修改以下内容
=SUMIFS(OFFSET(B3:ZZ3,MATCH("house 1",E:E,0)-3,0),B3:ZZ3,">"&42863,B3:ZZ3,"<"&42868)
将“house 1”更改为参考。
将42863和42868分别更改为开始日期和结束日期的参考。 (这些数字只是数字格式的日期。)
将范围和匹配公式中的3更改为包含日期的行号。
将B3:ZZ3更改为您日期的行范围。假设您要连续更新数据,可以通过增加范围来提供空间,如我的示例中的ZZ列。
答案 2 :(得分:0)
假设:
Sheet2中的公式,单元格AG4应该有效:
SUM(INDIRECT("Sheet1!R4C"&22+MATCH(AD4,Sheet1!W3:AC3,0),FALSE):INDIRECT("Sheet1!R4C"&22+MATCH(AE4,Sheet1!W3:AC3,0),FALSE))
答案 3 :(得分:0)
AI4
使用数组操作的公式(虽然是普通公式,而不是CSE):
=SUMPRODUCT(Sheet1!W4:XX100*
(Sheet1!A4:A100 = "House " & A4)*
(Sheet1!W3:XX3 >= AD4)*
(Sheet1!W3:XX3 <= AE4))
P.S。 Index/Match
版本应该(据说)更快,但我喜欢这种形式的可读性......