用多个条件计数

时间:2018-12-11 14:08:16

标签: excel

让“ sheet1”的A列为部门的类别编号(hr = 0,法律部门= 1,依此类推)

让“ sheet1”的B列是该部门是否已完成任务的文本(如果有文本,则说明该任务已完成,如果有空白,则该任务仍处于活动状态)

现在,我想按有效性来总结那些部门。因此,我希望统计每个部门的答案。

如果HR有10项任务,其中3项是“空白”,即回答了7项,那么我想在另一张工作表中提供此类统计信息,例如以下内容

编号,部门,已回答,未回答,已解决

0 -------- HR ----------- 3 -------------- 7 ---------- -10

我使用Countif函数(= COUNTIF('Sheet'!A:A,“ = 0”)轻松完成了这些任务,它向我显示了要解决的任务数。

与此同时,我尝试了match,countif,countifs,iflookup等其他功能,但它只是根据总体来计算我的数据,而不是按部门计算

我希望你明白我想要的。

预先感谢

1 个答案:

答案 0 :(得分:0)

您的样本数据似乎与您的叙述相矛盾。

  

如果HR有10个任务,其中3个是“空白”,则表示已回答7个,

似乎数据应该更像

let data = {
  "fbl": {
    "id": "fbl",
    "user_id": "fbl@xxx.fr",
    "nb_error": 0,
    "time": "1:27.700"
  },
  "dev": {
    "id": "dev",
    "user_id": "dev@xxx.fr",
    "nb_error": 0,
    "time": "1:12.54"
  },
  "jul": {
    "id": "jul",
    "user_id": "fbl@xx.fr",
    "nb_error": 0,
    "time": "0:58.700"
  }
}

const formatTime =(time)=> parseFloat(time.replace(":",""))

const compareTime = (a,b)=>{
  let a_time = formatTime(a["time"])
  let b_time = formatTime(b["time"])
  return a_time-b_time
}

const sort = (data) => {
let keys = Object.keys(data)
let dataAsArray = keys.map(e=>data[e])
return dataAsArray.sort(compareTime)
}
console.log(sort(data))

答案(非空白)应该是

No.     Department    Answered         Unanswered     Addressed
0 -------- HR ----------- 7 -------------- 3 ----------- 10

未回答(空白)应该是

=countifs('sheet1'!a:a, 0, 'sheet1'!b:b, "<>")