excel-formula - 在excel中对单元格进行逻辑计数
问题描述
嗨,想根据给定的值对单元格进行逻辑计数。这意味着它使用指定值计算特定范围内 X 的数量。请查看附件以便更好地理解。现在我已经使用它实现了
=IF(F3="X",$D3,"")
但它需要以特定值给出计数。
如何IF()
在单元格 E3 的 hrs 值之后添加另一个条件以停止放置 P1?(10 个单元,因为这是半小时一次)。
解决方案
我也对图像和评论感到有些困惑。您询问计数(使用 COUNTIF 或 COUNTIFS 可能有点容易),但随后似乎想要将值放在单元格中(并可能以黄色突出显示它们),除非它们超出分配给工作的小时数。
我只回复这一部分:“如何在 IF() 中添加另一个条件,在单元格 E3 的 hrs 值之后停止放置 P1?(10 个单元格,因为这是半小时一次)。”
你只是在问你添加了什么:
=IF(F3="X",$D3,"")
这很难回答,因为我的回答是:
在第一个括号之后和 F3="X" 之前添加 AND(,然后在第一个逗号之后和 $D3 之前放置 COUNTIF($F3:F3,"X")<=INT($E3*2))在你原来的公式
这可能是我回答这个问题的最无益的方式(老实说,我什至不确定我的措辞是否正确)。
我更愿意提供这个:请将这个公式放在单元格 F4 中:
=IF(AND(F3="X",COUNTIF($F3:F3,"X")<=INT($E3*2)),$D3,"")
然后将其复制到该单元格右侧的剩余单元格。尽管请求特定于具有基于 E3 的信息的行,但我使公式有些通用,以便它可以用于所有三行(从 F4、F6 和 F8 开始的行)。我正在使用 INT 函数,因为我不知道数据对于小时数的限制是什么,并且想与一个整数进行比较。您可能想要消除它或改用舍入函数。
我意识到您的图表正在进行中,因此当您添加行和列时,您需要调整此公式以适应这些更改,但这应该更简单一些。
我希望这能提供一些帮助。
我正在根据收到的评论添加一些额外的信息,并假设每个资源最多会有三个额外的工作和时间,在第一列之前添加最多 6 个额外的列,并带有“X”es。这样做会使公式复杂化。此公式适用于最多包含 9 个字符的代码。单元格 L4(以前是 F4)中的代码现在变为:
=IFERROR(IF(L3="X",TRIM(MID(REPT(LEFT($D3&REPT(" ",9),9),$E3*2)&REPT(LEFT($F3&REPT(" ",9),9),$G3*2)&REPT(LEFT($H3&REPT(" ",9),9),$I3*2)&REPT(LEFT($J3&REPT(" ",9),9),$K3*2),COUNTIF($L3:L3,"X")*9-8,9)),""),"")
这样做是根据作业和半小时创建一串值,然后根据截至当前列发生的“X”的计数从该列表中选择适当的代码。
附上我为测试而创建的图像。希望您可以从此处进行任何其他更改。
顺便说一句,我将小时数乘以 2 以获得半小时数,并且没有使用 INT() 或 ROUND() 或其他一些获取整数的方法,因为不清楚我们在一个小时内使用什么规则并且上传的原始电子表格不适合这种情况。如果一小时的最小分数是 0.5,则此解决方案应该可以正常工作。但是,如果您的分数较小,它可能无法按预期工作,因为我使用的 REPT 函数会自动截断,如果有人有 5.49 小时,则将有 10 个条目,但如果有人有 5.50,则将有 11 个条目。
推荐阅读
- html - 容器内联块再次
- reactjs - React - 链接整个元素的最佳方式?
- r - 在第一次出现分隔符“/”之前和之后将一列拆分为两列
- postgresql - 从 postgresql 函数返回 UDT 作为单个参数
- java - Java - 类型不匹配(但两者都来自同一类型?!):无法从 HashMap 转换
> 到HashMap > - json - 使用 AngularJS 从文件中读取 json
- laravel - 类别和子类别网址
- python - PyCharm 中的 Python 3 Tkinter 冻结问题
- git - 使用 worktree 将现有目录作为分支添加到 git
- c# - 是否会在新的 SQL 连接上提供带有新 SQLConnection 调用 Dispose 的 SQLCommand?