Excel:下拉月份实例

Excel:下拉月份实例

当选择某个月份时,是否有可能出现一个包含月份的下拉菜单,以显示该月份内的所有实例?

当您选择过滤器和月份时,类似的东西有 Excel 格式的表格,但我不需要该解决方案,而只需要下拉菜单......

这就像基本的日期列,包含所有日期实例......

日期

这是 Excel 格式的表格过滤器: 我知道它可以在月份上“打勾”,而且事情很容易,但我的背景不同,正如您在第一张图片上看到的,就像块或行一样,它是有目的的,每个块有 10 行,并且可以有更多的日期实例。因此,此表过滤器仅适用于匹配,但我希望我的 10 行保留下来,即使它们可能是空的......

Excel 表格

如何在下拉菜单中实现该解决方案以仅显示相应的月份,并且当我选择它时,它应该显示该月份内的所有实例...我想要公式..

答案1

在新工作表上,选择一个单元格(例如 A1),然后输入您需要使用的第一个月 1 日的日期,例如 1/1/2001。

在该单元格下,输入下个月的 1 号,例如 1/2/2001 选择两个单元格并向下拖动单元格手柄,以创建所需长度的月份列表。选择所有这些月份并应用自定义格式,例如“mmm yy”以获得“Jan 01”。选择这些月份后,在名称框中输入一个新名称来引用此列表,例如“MonthsList”。

在原始工作表上,选择要选择月份的位置,然后对该单元格应用数据验证,使用 =MonthsList 作为源。现在,您有一个用于选择月份的选择列表。也对此应用合适的数字格式。

选择此单元格并为其命名,例如“SelectedMonth”

回到新工作表,在新列中(例如在 C1),输入以下公式:

=SelectedMonth

在下方的单元格 C2 中输入以下内容:

=IF(C1+1=DATE(YEAR(SelectedMonth),MONTH(SelectedMonth)+1,1),"",C1+1)

这将检查如果将上面的日期加 1 会发生什么情况 - 它是否等于所选月份之后的月份的第一天(这就是中间的 +1 的原因)。将 C1 和 C2 都格式化为日期。将其向下拖动 30 行到第 31 行。现在选择 C1:C31 并为其命名,例如 DatesList。返回原始工作表,在选择月份的单元格下,应用数据验证并使用 =DatesList 作为源。

任务完成了。对于少于 31 天的月份,第二个选项列表的末尾会有一些空白行。您可以使用 DatesList 的公式(而不仅仅是单元格引用)来整理这些行,然后可以使用 OFFSET 或 INDEX 技术来返回包含数据的行数。但实际上,对于这种显然不选择它们的用例,我可能不会担心这一点。

最后,您现在选择了一个日期,您可以在公式或其他任何情况下使用该日期进行比较、过滤等。

相关内容