【问题标题】:Trying to correctly duplicate formulas keeping same cell range but adjusting date ranges尝试正确复制保持相同单元格范围但调整日期范围的公式
【发布时间】:2023-03-05 18:07:01
【问题描述】:

我正在尝试用 Excel 电子表格来帮助某人处理销售数据。我希望这个解释是清楚的。她为她销售的每个类别的物品都有一个工作表,例如衣服、鞋子、家具等。每个工作表都有一个 G 列,表示销售日期,数据采用日期格式。

在汇总工作表上,她想要汇总和分析数据,她手动做的一件事是计算每个月每个类别的销售数量(有时为零)。

我帮助她编写了一个公式,将 2019 年 3 月的服装工作表中的计数提取到摘要工作表的单元格中:

=COUNTIF($CLOTHING.G3:G502;">2/2019")-COUNTIF($CLOTHING.G3:G502;">=4/2019")

这正确地产生了 5. Cool。但这只是一个月,我们每年需要十二个,多年,我们有六个类别。所以我们不希望每次需要计数时都对每个公式进行硬编码。

当我们试图将公式复制到下面的单元格中(4 月、5 月等),希望它能调整日期时,它错误地将单元格范围调整为 G4:G503。单元格范围不应该改变;月份应该提前,但它们没有改变。

我们一直在尝试我们在网上找到的不同建议,例如将范围命名为 G3:G502,但它不喜欢这样。我们遇到了一个错误。

我们都(显然)对 Excel 了解有限。请让我知道我们做错了什么,或者是否有更好的方法来解决这个问题,以及如何逐步做到这一点。如果我的解释不清楚,请提出任何问题。

【问题讨论】:

  • 所有范围引用都是相对的,如果它们不是绝对的。 G1:G500 是相对的,这意味着它与自己的单元格始终保持相同的距离,这意味着如果将其复制到另一个位置,它必须更改。 $G$1:$G$500 是绝对的,这意味着无论您将其复制到何处,它都不会改变。阅读“绝对和相对引用”。
  • 阅读“日期之间的计数”,例如:exceljet.net/formula/count-cells-between-dates。 “日期”是在这方面将出现的另一个主题。您是否有“真实”日期或“假”日期可供使用?谷歌搜索“Excel 日期 Pearson”,您将到达这里:cpearson.com/excel/datetime.htm。阅读文章。
  • 如果您在 12 月之后向下复制,预计年份会发生变化,还是第一个单元格是 1 月,第 12 个也是最后一个单元格是 12 月?
  • @ForwardEd,我们每个摘要页面只有一年,所以不超过 12 行。链接看起来很接近我们的需要,谢谢!

标签: excel date excel-formula countif date-range


【解决方案1】:

使用你的公式我会调整如下:

=COUNTIF($CLOTHING.G$3:G$502;">="&DATE(2019;row(1:1);1))-COUNTIF($CLOTHING.G$3:G$502;">"&EOMONTH(DATE(2019;row(1:1);1),0))

注意在单元格引用中添加了 $。这样可以在复制单元格时防止列或行发生变化。

Row(1:1) 将在它输入的第一个单元格中返回 1,并且在向下复制时将增加 1。因此,重要的是不要从其初始入口点向下复制超过 12 行。

请注意,日期中的年份是硬编码的。或者,可以将年份放置在单元格中,并且可以使用对该单元格的引用来代替硬编码的年份。这样在随后的几年中,您只需更改单元格中的值,而不是更改硬编码公式中的值。

请注意,此解决方案假定第一个单元格为 1 月,第 12 个单元格为 12 月。

我的系统配置为使用 , 而不是 ; 作为分隔符所以我可能在我的编辑中犯了错误。

或者,您可以查看 COUNTIFS。它与 COUNTIF 类似,但要求所有条目都为 TRUE 才能对条目进行计数。

=COUNTIFS($CLOTHING.G$3:G$502;">="&DATE(2019;row(1:1);1);$CLOTHING.G$3:G$502;">"&EOMONTH(DATE(2019;row(1:1);1),0))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-14
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多