提取时间范围内的Excel项目到连续时间。

huangapple go评论70阅读模式
英文:

Extract Excel items in time range to consecutive time

问题

这是一个包含时间范围内项目的简单表格。期望的结果表格将所有项目映射到它们连续的时间段。你建议使用什么公式来完成这个任务?谢谢!

原始表格:

项目 开始时间 结束时间
BE 8:00 AM 8:02 AM
zeta 8:06 AM 8:24 AM
gamma 8:13 AM 9:02 AM
beta 8:49 AM 9:13 AM
BE 8:56 AM 8:58 AM

结果表格:

时间 BE zeta gamma beta
8:00 AM Y
8:01 AM Y
8:02 AM Y
8:03 AM
8:04 AM
8:05 AM
8:06 AM Y
8:07 AM Y
8:08 AM Y
8:09 AM Y
8:10 AM Y
8:11 AM Y
8:12 AM Y
8:13 AM Y Y
8:14 AM Y Y
8:15 AM Y Y
8:16 AM Y Y
8:17 AM Y Y
8:18 AM Y Y
8:19 AM Y Y
8:20 AM Y Y
8:21 AM Y Y
8:22 AM Y Y
8:23 AM Y Y
8:24 AM Y Y
8:25 AM Y
8:26 AM Y
8:27 AM Y
8:28 AM Y
8:29 AM Y
8:30 AM Y
8:31 AM Y
8:32 AM Y
8:33 AM Y
8:34 AM Y
8:35 AM Y
8:36 AM Y
8:37 AM Y
8:38 AM Y
8:39 AM Y
8:40 AM Y
8:41 AM Y
8:42 AM Y
8:43 AM Y
8:44 AM Y
8:45 AM Y
8:46 AM Y
8:47 AM Y
8:48 AM Y
8:49 AM Y Y
8:50 AM Y Y
8:51 AM Y Y
8:52 AM Y Y
8:53 AM Y Y
8:54 AM Y Y
8:55 AM Y Y
8:56 AM Y Y Y
8:57 AM Y Y Y
8:58 AM Y Y Y
8:59 AM Y Y
9:00 AM Y Y
9:01 AM Y Y
9:02 AM Y Y
9:03 AM Y
9:04 AM Y
9:05 AM Y
9:06 AM Y
9:07 AM Y
9:08 AM Y
9:09 AM Y
9:10 AM Y
9:11 AM Y
9:12 AM Y
9:13 AM Y
9:14 AM
9:15 AM

编辑:

我刚刚注意到SUMPRODUCT()函数对大多数情况有效,但Beta在结果表格中缺少第一分钟(8:49 AM)。文件在这里,https://u.pcloud.link/publink/show?code=XZDCONVZ6mQCoqWVEJB0W7AKyLTvNje9z3IX

有什么想法吗?

英文:

Here’s a simple table with items in a time range. The desired result table has all items mapped to their consecutive time slots. What formula would you suggest accomplishing this task? Thanks!

Original table:

Item Start End
BE 8:00 AM 8:02 AM
zeta 8:06 AM 8:24 AM
gamma 8:13 AM 9:02 AM
beta 8:49 AM 9:13 AM
BE 8:56 AM 8:58 AM

Result table:

Time BE zeta gamma beta
8:00 AM Y
8:01 AM Y
8:02 AM Y
8:03 AM
8:04 AM
8:05 AM
8:06 AM Y
8:07 AM Y
8:08 AM Y
8:09 AM Y
8:10 AM Y
8:11 AM Y
8:12 AM Y
8:13 AM Y Y
8:14 AM Y Y
8:15 AM Y Y
8:16 AM Y Y
8:17 AM Y Y
8:18 AM Y Y
8:19 AM Y Y
8:20 AM Y Y
8:21 AM Y Y
8:22 AM Y Y
8:23 AM Y Y
8:24 AM Y Y
8:25 AM Y
8:26 AM Y
8:27 AM Y
8:28 AM Y
8:29 AM Y
8:30 AM Y
8:31 AM Y
8:32 AM Y
8:33 AM Y
8:34 AM Y
8:35 AM Y
8:36 AM Y
8:37 AM Y
8:38 AM Y
8:39 AM Y
8:40 AM Y
8:41 AM Y
8:42 AM Y
8:43 AM Y
8:44 AM Y
8:45 AM Y
8:46 AM Y
8:47 AM Y
8:48 AM Y
8:49 AM Y Y
8:50 AM Y Y
8:51 AM Y Y
8:52 AM Y Y
8:53 AM Y Y
8:54 AM Y Y
8:55 AM Y Y
8:56 AM Y Y Y
8:57 AM Y Y Y
8:58 AM Y Y Y
8:59 AM Y Y
9:00 AM Y Y
9:01 AM Y Y
9:02 AM Y Y
9:03 AM Y
9:04 AM Y
9:05 AM Y
9:06 AM Y
9:07 AM Y
9:08 AM Y
9:09 AM Y
9:10 AM Y
9:11 AM Y
9:12 AM Y
9:13 AM Y
9:14 AM
9:15 AM

Edit:

I just noticed that SUMPRODUCT() worked for most, but Beta is missing the first minute in the result table (8:49 AM). File is here, https://u.pcloud.link/publink/show?code=XZDCONVZ6mQCoqWVEJB0W7AKyLTvNje9z3IX

Any ideas?

答案1

得分: 2

尝试使用<kbd>XMATCH( )</kbd>。

提取时间范围内的Excel项目到连续时间。


• 在单元格<kbd>F2</kbd>中使用的公式:

=IF(ISNUMBER(XMATCH(1,($E2&gt;=$B$2:$B$6)*($E2&lt;=$C$2:$C$6)*(F$1=$A$2:$A$6))),&quot;Y&quot;,&quot;&quot;)

需要向下填充公式并向右填充,还请根据需要更改单元格引用和范围。


您还可以在<kbd>SUM( )</kbd>函数中使用<kbd>BOOLEAN LOGIC</kbd>。

提取时间范围内的Excel项目到连续时间。


• 在单元格<kbd>F2</kbd>中使用的公式:

=IF(SUM(($E2&gt;=$B$2:$B$6)*($E2&lt;=$C$2:$C$6)*(F$1=$A$2:$A$6)),&quot;Y&quot;,&quot;&quot;)

由于 OP 使用的是 Excel 2007,因此将使用<kbd>SUM( )</kbd>替换为<kbd>SUMPRODUCT( )</kbd>的公式,尽管<kbd>SUM( )</kbd>也可以工作,但需要在退出编辑模式时按下<kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>ENTER</kbd>,另外,由于您未使用更新的版本,可以使用<kbd>MATCH( )</kbd>函数代替<kbd>XMATCH( )</kbd>,但使用<kbd>SUMPRODUCT( )</kbd>比其他方法更快。


这是一个屏幕截图,显示了第一次 Beta 的时间为 8:49 AM

提取时间范围内的Excel项目到连续时间。


编辑于 2023 年 8 月 10 日

更新的公式:

=IF(SUMPRODUCT((TIME(HOUR($E2),MINUTE($E2),)&gt;=$B$2:$B$6)*
               (TIME(HOUR($E2),MINUTE($E2),)&lt;=$C$2:$C$6)*
               (F$1=$A$2:$A$6)),&quot;Y&quot;,&quot;&quot;)

提取时间范围内的Excel项目到连续时间。


从这里下载工作簿:Workbook

英文:

Try using <kbd>XMATCH( )</kbd>

提取时间范围内的Excel项目到连续时间。


• Formula used in cell <kbd>F2</kbd>

=IF(ISNUMBER(XMATCH(1,($E2&gt;=$B$2:$B$6)*($E2&lt;=$C$2:$C$6)*(F$1=$A$2:$A$6))),&quot;Y&quot;,&quot;&quot;)

Formula needs to fill down and fill right, also please try to change the cell references and ranges accordingly as per your suit.


You can also use a <kbd>BOOLEAN LOGIC</kbd> within a <kbd>SUM( )</kbd> function.

提取时间范围内的Excel项目到连续时间。


• Formula used in cell <kbd>F2</kbd>

=IF(SUM(($E2&gt;=$B$2:$B$6)*($E2&lt;=$C$2:$C$6)*(F$1=$A$2:$A$6)),&quot;Y&quot;,&quot;&quot;)

Since OP is using Excel 2007 hence replace the formula using <kbd>SUM( )</kbd> with <kbd>SUMPRODUCT( )</kbd> although the <kbd>SUM( )</kbd> would work but it would need to hit <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>ENTER</kbd> while exiting the edit mode, also since you are not using the updated version, you can use <kbd>MATCH( )</kbd> function in place of <kbd>XMATCH( )</kbd> but using <kbd>SUMPRODUCT( )</kbd> will be faster than the rest.


Here is a screenshot where it shows it is not missing the first time 8:49 AM for Beta

提取时间范围内的Excel项目到连续时间。


Edit 8/10/2023

Updated formula:

=IF(SUMPRODUCT((TIME(HOUR($E2),MINUTE($E2),)&gt;=$B$2:$B$6)*
               (TIME(HOUR($E2),MINUTE($E2),)&lt;=$C$2:$C$6)*
               (F$1=$A$2:$A$6)),&quot;Y&quot;,&quot;&quot;)

提取时间范围内的Excel项目到连续时间。


Download the workbook from here: Workbook

huangapple
  • 本文由 发表于 2023年8月9日 06:25:55
  • 转载请务必保留本文链接:https://go.coder-hub.com/76863531.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定