在单元格匹配某些内容的列中查找最小值/最大值

在单元格匹配某些内容的列中查找最小值/最大值

我有一个电子表格,其布局如下:

  Date      Project#
2012-01-01    130
2012-01-02    153
2012-01-03    153
2012-01-04    130
2012-01-05    130
2012-01-06    130

我想要获取 Project# 与变量匹配的行的最小/最大日期,以生成以下内容:

Projects    Start date    End date
130         2012-01-01    2012-01-06
153         2012-01-02    2012-01-03

我认为我可以通过 VLOOKUP 进行双向搜索,但我无法让它正常工作。只要项目编号全部分组在一起,它就可以正常工作,但如果它们像示例中那样交错,它就不再起作用了。它只从最顶部的分组返回,所以我得到的项目 130 的结束日期是 2012-01-01。

我对电子表格有点陌生,因此如果能得到任何帮助我将非常感激。

谢谢!

答案1

前言:我假设你熟悉 Calc 引用单元格的方式,即ColumnLetterRowNumber范围的表达方式如下:A10:C12表示 A10 到 C12 之间的所有单元格,即 3 行 3 列

好的,我假设您的数据在A1:B100(或无论您有多少行)。

现在,D1输入项目#E1输入开始日期F1输入结束日期然后列出所有项目编号(手动),如下所示:

日期 项目编号 项目编号 开始日期 结束日期
2012 年 1 月 1 日 130 130
2012-01-02 153 项目编号 开始日期 结束日期
2012 年 1 月 3 日 153 153
2012 年 1 月 4 日 130
2012-01-05 130
2012-01-06 130

现在的公式E2=DMIN(A1:B100,1,D1:D2)因为F2 它是=DMAX(A1:B100,1,D1:D2)。然后,将单元格 E2:F2 复制到其他行。

不幸的是,这些操作就是这样运作的。

答案2

我会用数据导航创建数据透视表。

  1. 菜单数据
  2. 选择数据导航
  3. 点击开始
  4. 点击好的
  5. 拖放项目到行字段
  6. 拖放日期至数据字段
  7. 双击日期你刚刚添加
  8. 选择功能最大限度
  9. 点击好的

这就是你要找的东西吗?

答案3

我知道我在 9 月份看过这个,但今天我重新审视了一下,发现了一个新问题。它基于Stefan 的回答但是它通过两列并交替排列来解决数据库“标准”需要两行的问题:

    在此处输入图片描述

公式如下:

  在此处输入图片描述

如果不清楚的话,请告诉我。

答案4

Scott,感谢您的改进 - 这确实很有帮助。为了简化电子表格的设置,我采取了以下步骤:

1 - 复制我想要找到最大值的数据列并将其添加到底部(因此行数是数据的两倍)

2 - 在重复数据旁边的列中(示例中为 C),在顶部单元格中输入 1,然后 =IF(ISODD(ROW(A2));C1+1;C1) 一直复制到数据的底部(步骤 1 只是使找到底部变得容易)

3 - 在下一列中输入 =IF(ISODD(ROW(A1));"Project";OFFSET($B$1;C1;0)) 并再次复制到重复数据的末尾 - 这将产生我们想要查询的交替字段名称和值

4 - 然后通过 =DMAX($A$1:$B$3437;"Livedate";OFFSET(D$1;ROW($A1)*2-2;0;2;1)) 找到最大值,它给出每行的最大值,如您的示例所示。

我有很多数据 - 3400 行 - 所以这样做只会让构建工作表变得更容易。谢谢您的提示,希望这对其他人有用。

相关内容