公交车清单摘要页面公式(列出有空座的公交车)

Bus Manifest Summary Page Formula (List Buses With Open Seats)

我正在为公交车创建清单。我有一个工作表,其中包括姓名、公共汽车号码、目的地和 start/end 日期。假设每辆公共汽车有三个座位,如果有 space 个空位,则名称单元格为空。

WORKSHEET: "Manifest"
name      bus #   location       start date     end date
missy     1       new york       2020/10/01     2020/10/10
ralph     1       new york       2020/10/01     2020/10/10
[empty]   1       new york       2020/10/01     2020/10/10
frank     2       philadelphia   2020/10/15     2020/10/25
[empty]   2       philadelphia   2020/10/15     2020/10/25
[empty]   2       philadelphia   2020/10/15     2020/10/25
ryan      3       pittsburgh     2020/11/01     2020/11/10
jim       3       pittsburgh     2020/11/01     2020/11/10
[empty]   3       pittsburgh     2020/11/01     2020/11/10
kate      4       detroit        2020/11/15     2020/11/28
joe       4       detroit        2020/11/15     2020/11/28
martha    4       detroit        2020/11/15     2020/11/28

我需要将其推送到另一个工作表,其中包含每辆公共汽车有多少座位的快速摘要:

WORKSHEET: "Dashboard"
bus #   location       start date     end date      open seats
1       new york       2020/10/01     2020/10/10    1
2       philadelphia   2020/10/15     2020/10/25    2
3       pittsburgh     2020/11/01     2020/11/10    1

注意:仪表板不会包括任何没有座位的公共汽车。

我试图弄清楚的公式,只需要显示座位开放的公共汽车,列出公共汽车编号/位置/start/end,并计算该公共汽车列出了多少个空白单元格.

在构建此工作表和仪表板一整天后,这是我一直在努力的剩余部分。我是 运行 Excel 2016,所以这将排除任何 Office 365 更新。由于它是一个干净的仪表板,因此公式需要包含 IFERROR 才能不向任何单元格打印“#N/A”。

不确定是不是一天结束和工作周结束,但我就是想不通。解决现有的 Stack Overflow 问题。非常感谢您提出任何建议!

实现目标的最简单方法是创建一个 Pivot:

  1. 插入一个Pivot table
  2. buslocationdates 字段添加到 Pivot
  3. bus 字段添加到 Pivot 值。在 Value field settings 中选择 Summarize values by Count
  4. name 字段添加到 Pivot 过滤器
  5. 转到 PivotTable Options -> Display 选项卡并勾选 Classic PivotTable layout 复选框
  6. 过滤掉空白names
  7. 完成。

但是,如果您仍然想用公式来做,那么您可以使用以下方法:

  1. bus

    如果类型是数字:

    =IFERROR(AGGREGATE(15,6,$B:$B/(($A:$A="")*(COUNTIF($I:I1,$B:$B)=0)),1),"-")

    如果类型是文本:

    =IFERROR(INDEX($B:$B;AGGREGATE(15;6;(1/(($A:$A="")*(COUNTIF($I:I1;$B:$B)=0)))*ROW($B:$B)-1;1));"-")

  2. location

    =IFERROR(LOOKUP(2,1/($B:$B=I2)*($A:$A=""),$C:$C),"-")

  3. start date

    =IFERROR(LOOKUP(2,1/($B:$B=I2)*($A:$A=""),$D:$D),"-")

  4. end date

    =IFERROR(LOOKUP(2,1/($B:$B=I2)*($A:$A=""),$E:$E),"-")

  5. open seats

    =SUMPRODUCT(($B:$B=I2)*($A:$A=""))