根据下面列中的匹配数据从一行返回最大单元格

时间:2016-08-17 07:03:36

标签: excel google-sheets

全新的stackoverflow如果此消息中的任何内容不符合典型规范,请致歉。

我有一个事件表(在Google表格中),其中每列包含事件标题,日期,事件类型,然后是名称列表。 See here.

Table image

我希望能够做到。

  1. 返回有人参加的最近活动。因此,例如,我希望能够为Alice创建一个返回1/23/2016的公式,为Kyle创建1/16/2016。
  2. 返回某人在某段时间内参加过的活动总数。因此,举例来说,我希望能够在2016年1月Sam的参赛人数中返回“2”。理想情况下,我还希望按事件类型执行此操作。因此,例如,我想回答“1”表示Sam在2016年1月参加的抗议活动的数量,以及“1”表示社区活动的数量。
  3. 我尝试过VLOOKUP,INDEX-MATCH组合和各种数组公式,但没有运气。

1 个答案:

答案 0 :(得分:0)

我建议您将数据转换为表格视图:

enter image description here

第1步

添加新表。

添加此公式

  • 进入A2:

=TRANSPOSE(SPLIT(ArrayFormula(CONCATENATE(TRANSPOSE(Sheet1!B5:F)&",")),","))

  • 进入B2:

=TRANSPOSE(SPLIT(JOIN("",ArrayFormula(REPT(Sheet1!B2:F2&",",Sheet1!B3:F3))),","))

  • 进入C2:

=TRANSPOSE(SPLIT(JOIN("",ArrayFormula(REPT(Sheet1!B1:F1&",",Sheet1!B3:F3))),","))

  • 进入D2:

=TRANSPOSE(SPLIT(JOIN("",ArrayFormula(REPT(Sheet1!B4:F4&",",Sheet1!B3:F3))),","))

第2步

现在你已经拥有了这张漂亮的桌子并且可以使用公式:

  1. 查询
  2. 过滤
  3. Unique + Sumif + Countif
  4. 和其他人。
  5. 例如,这个公式:

    =ArrayFormula(VLOOKUP(UNIQUE(FILTER(A2:A,A2:A<>"")),SORT(A2:D,1,0,2,0),{1,2,3},0))

    将列出某人参加过的最新活动:

    enter image description here

    此公式将显示某人参加的活动的名称,地点和数量:

    =QUERY({A:D},"select Col1, month(Col2)+1, count(Col3) where Col1 <>'' group by Col1, month(Col2)+1 label month(Col2)+1 'month'")

    并且还可以在此查询中添加事件类型:

    =QUERY({A:D},"select Col1, month(Col2)+1, Col4, count(Col3) where Col1 <>'' group by Col1, Col4, month(Col2)+1 label month(Col2)+1 'month'")