修正公式

凯利·加
凯利·加 ✭✭✭✭✭✭

谁能告诉我我错过了什么?我试图计算“阶段1”的结束日期是过去而“阶段2”的结束日期是将来的记录的数量。我没有得到任何语法错误,这个公式的每一部分都是独立的,所以我一定是在两者之间的联系中遗漏了一些东西。

谢谢你!标记我的公式大师@Paul新来的可见性!

=COUNTIFS({程序进度- Shell移动任务},"第一阶段",{程序进度- Shell移动完成},


«1

答案

  • 凯文•史密斯
    凯文•史密斯 ✭✭✭✭✭✭

    你好,凯利

    看起来你的公式是正确的。还有吗?你粘贴的内容是不完整的,会抛出#UNPARSEABLE。在Finish}后面需要一个条件,然后a)关闭语法。

    如果你有剩下的就寄给我。

    我希望这对你有所帮助。

    谢谢你!

    凯文

    如果可以我很乐意帮忙。

    ☑️你对我对你问题的回答满意吗?请帮助社区,将其标记为接受的回答)

  • 我假设它会给你一个0,因为你的公式试图计算同一单元格同时有“阶段1”和“阶段2”。如果列不是多选下拉列表,则不可能执行此操作。如果它是一个多选,我总是在使用简单的计数而没有嵌套HAS、FIND或CONTAINS时遇到问题。

    凯莉·德雷克(她/她/她的)

    星巴克咖啡公司|高级项目经理|全球增长和概念

  • 凯利·加
    凯利·加 ✭✭✭✭✭✭

    抱歉,我的公式没有完全记下来。完整的公式如下。结果是0。这不是在看同一个单元格。有一个Task列,其中一行表示Stage 1,一行表示Stage 2。每一行都有一个对应的Finish列,我基于这些日期。

    image.png


    =COUNTIFS({程序进度- Shell移动任务},"第一阶段",{程序进度- Shell移动完成},TODAY()))

  • 凯文•史密斯
    凯文•史密斯 ✭✭✭✭✭✭

    我想你是想要(Stage 1 and < Today)还是(Stage 2 and '>'Today),对吗?所以在你的例子中,你正在寻找'2'的结果?

    您可能需要设置不同的COUNTIFS,然后将它们相加。我相信它把这些都看成是与。

    如果你不想有两个COUNTIFS, Kelly关于CONTAINS的建议似乎值得一试。


    如果你只使用:

    =COUNTIFS({Program Schedule - Shell Mobility Task}, "Stage 1", {Program Schedule - Shell Mobility Finish},

    同样地,

    =COUNTIFS({Program Schedule - Shell Mobility Task}, "Stage 2", {Program Schedule - Shell Mobility Finish}, '>'Today())你得到= 1。

    试一下,看看是否对你有用。


    谢谢你!

    凯文

    如果可以我很乐意帮忙。

    ☑️你对我对你问题的回答满意吗?请帮助社区,将其标记为接受的回答)

  • 凯利·加
    凯利·加 ✭✭✭✭✭✭

    凯文,


    我不认为做两个COUNTIFS并把它们加起来会得到正确的数字。我要查这两个日期之间的记录。如果我的一个公式只是寻找每个阶段2的未来日期,那么我就重复计算了,因为阶段1中的所有内容都有阶段2的未来日期。我试图获得在阶段2中活动的记录的计数,因此它们已经完成了阶段1。


    明白吗?所有这些公式工作让我的大脑开始变得有点糊状!哈哈

    我也不确定Kelly关于CONTAINS的建议是否有效,因为这些公式并不是在同一个单元格中寻找数据。如果你看一下我分享的截图,我引用了两个完全独立的单元格。

  • 凯文•史密斯
    凯文•史密斯 ✭✭✭✭✭✭

    哈哈,我和你在一起,今天是周五!!

    但我只是想知道,除了今天以外的其他日期不都算(<今天和'>'今天)吗?

    我假设当你有{程序进度- Shell移动任务},这是从程序进度的整个列的范围。所以在第一阶段和第二阶段,它都是向下看的

    因此公式::=COUNTIFS({程序进度- Shell迁移任务},"Stage 1",{程序进度- Shell迁移任务},"Stage 2")将返回0。

    告诉我这是不是真的

    1)当第一阶段已经过去时进行计数。(或者当%comp为100时?)

    2)当第二阶段处于活动状态时计数。(Finish在将来或者%comp小于100)

    所以在你的例子中,你正在寻找的计数是“1”还是你正在寻找的计数是“2”?

    另外,如果您正在寻找一个计数,或者您只是想知道阶段2应该在什么时候活动,您会感到好奇。

    抱歉问了这么多问题。

    谢谢你!

    凯文

    如果可以我很乐意帮忙。

    ☑️你对我对你问题的回答满意吗?请帮助社区,将其标记为接受的回答)

  • 凯利·加
    凯利·加 ✭✭✭✭✭✭

    是的,幸运的是我的一天/一周快结束了!!希望你也是!


    所以,我甚至不确定我现在是否理解了你的问题!哈哈

    如果我说我正在寻找Today位于Stage 1的Finish和Stage 2的Finish之间的记录计数,可能会有所帮助。

    理想情况下,% complete列也可以发挥作用,但我不想让它更加复杂……但现在我在想,也许我的公式根本不应该看日期……只有100%这一列!

    我要试着沿着那条路走下去!

  • 凯利·加
    凯利·加 ✭✭✭✭✭✭

    凯文,


    我越来越近了!谢谢你给了我很多建议,让我思考。


    我就到此为止吧。我希望你有一个愉快的周末!

  • 保罗新来的
    保罗新来的 ✭✭✭✭✭✭

    很抱歉耽搁了。最近我忙得不可开交。


    问题是,从技术上讲,您的公式正在寻找同时填充在同一个单元格中的“Stage 1”和“Stage 2”。

    COUNTIFS函数将计算在单行中找到与所有范围/条件匹配的行数。这意味着您需要在同一行中同时拥有阶段1和阶段2,才能从COUNTIFS中获得准确的计数。


    您可能不希望它查看相同的单元格,但这就是它的工作方式。


    我的建议:

    插入两个辅助列。

    第一个将是一个文本/数字,它将复制每行中的父数据。具体如何做到这一点取决于你的工作表的结构。看起来起始和执行是同一个父节点。这就是你想要提取的数据。像这样的东西应该工作:

    =IF(LEFT([任务名]@row, 5) = "Stage", INDEX(祖宗(),COUNT(祖宗())- 2)))


    获得行上的父数据后,您将使用如下内容设置第二个帮助列(日期类型):

    =IF([任务名]@row = "第一阶段",INDEX(COLLECT([完成日期]:[完成日期],[任务名]:[任务名],@cell = "第二阶段",[第一个助手]:[第一个助手],@cell =[第一个助手],@cell =[第一个助手](电子邮件保护)), 1))


    然后你的COUNTIFS会是这样的…

    =COUNTIFS({Program Schedule - Shell Mobility Finish}, @cell < TODAY(), {Date Helper}, @cell > TODAY())

    thinkspi.com

  • 凯利·加
    凯利·加 ✭✭✭✭✭✭

    谢谢你,保罗!希望忙乱的事情都是好的!

    我要处理助手数据…问题是,我的用户一直在最大的空间上的表,我正在使用拉这个计数,所以添加列是有点棘手。我非常感谢你对我的公式不奏效的解释。完全有道理!如果我能够添加帮助器数据,我确信这将起作用。再次感谢!

  • 保罗新来的
    保罗新来的 ✭✭✭✭✭✭

    你遇到了哪些限制?您是否有可能合并的辅助列?

    thinkspi.com

  • 凯利·加
    凯利·加 ✭✭✭✭✭✭

    每张纸50万个细胞。不,不幸的是,辅助专栏并不多。用户决定将我们的项目计划与他们的客户信息跟踪器结合起来,这使得一个拥挤的表。再加上这个项目有数百个项目……为什么我们总是达到极限。


    在未来,我将反对这种类型的跟踪器整合。

  • 保罗新来的
    保罗新来的 ✭✭✭✭✭✭

    是的。合并多个跟踪器肯定会有问题。你有没有可能说服他们把它们分成两个单独的跟踪器,然后通过仪表盘访问它们,这样它们仍然只需要去一个地方?

    thinkspi.com

  • 凯利·加
    凯利·加 ✭✭✭✭✭✭

    是的,我希望我可以。在这一点上,我们已经深入到我们的结构,这将需要巨大的努力。有一种可能性,下周会有一些额外的支持,我们可能会有一些回旋的空间,但到目前为止,一直有一个项目经理从这个消防水管喝水。

  • 保罗新来的
    保罗新来的 ✭✭✭✭✭✭

    啊。祝你好运!

    thinkspi.com