【问题标题】:Bus Manifest Summary Page Formula (List Buses With Open Seats) [closed]公共汽车清单摘要页面公式(列出有开放座位的公共汽车)[关闭]
【发布时间】:2020-09-11 18:05:21
【问题描述】:

我正在为公共汽车创建一个清单名册。我有一个工作表,其中包括姓名、巴士号码、目的地和开始/结束日期。假设每辆公共汽车有三个座位,如果有空位,名称单元格是空的。

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

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

我试图弄清楚的公式只需要显示座位打开的公交车,列出公交车号/位置/起点/终点,并计算为该公交车列出了多少空白单元格。

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

不确定是一天结束还是一周工作结束,但我就是想不通。对现有的 Stack Overflow 问题感到不满。非常感谢您的任何建议!

【问题讨论】:

    标签: excel excel-formula excel-2016


    【解决方案1】:

    实现目标的最简单方法是创建一个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$2:$B$13/(($A$2:$A$13="")*(COUNTIF($I$1:I1,$B$2:$B$13)=0)),1),"-")

      如果类型是文本:

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

    2. location

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

    3. start date

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

    4. end date

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

    5. open seats

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

    【讨论】:

    • 如果数据是文本而不是数字,有没有办法使用 bus 列的公式? LOOKUP 公式是缺失的环节,而您的答案是金子。
    • 如果“总线”列中的数据是文本,则将INDEX函数添加到公式中。见编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多