【问题标题】:How to insert missing specified week dates in new rows for list of emloyees如何在员工列表的新行中插入缺少的指定星期日期
【发布时间】:2022-12-13 01:23:48
【问题描述】:

我现在必须手动为每个员工的所有缺失日期插入一个新行并分配缺失日期。附件(不允许附加文件或图像,抱歉)是一个简短的员工名单,作为示例。每个员工需要有 7 天,一些带有金额的日期和带有日期、员工姓名和空白金额的新行。该报告仅提供每个员工有金额的工作日。

每个星期的日期都不一样,所以我在单独的表格中列出了我需要验证的日期,也许可以用作所有员工需要拥有的日期范围的验证。我做的工作是每周一次,然后报告这些。 我一直在寻找一个特定的 VBA 示例,但没有找到。 随附的 excel 文件将向您显示我目前拥有的东西、我需要的外观以及要验证的日期范围。

我通过搜索在网上找到了一些代码,但没有一个专门用于解决我的问题。在我看来,这个逻辑可能太复杂而无法操作,而且超出了我有限的 vba 技能。

感谢您的帮助。 谢谢你。 Current Look

Outcome

Date Range Sheet

【问题讨论】:

  • 这是一个非常简单的问题。查看日期列,如果向下的下一个单元格大于当前单元格加1则在当前单元格下方插入一行,插入新日期,将相邻1的单元格复制到向下相邻的1行。

标签: excel vba date insert row


【解决方案1】:

这里有两个解决方案:

解决方案 1

我建议的解决方案(如果它适合你)将它变成一个表,因为它是最简单的并且不需要“帮助列”。
顶部的名称公式:=TRANSPOSE(UNIQUE(FILTER(B3:B100,B3:B100<>"")))

范围“E3”=MIN(A3:A100)
范围“E4:E100”=IFERROR(IF(E3+1>MAX($A$3:$A$100),"",E3+1),"")

然后所有的值都是SUMIFS(...)检查日期和名称:
=SUMIFS($C$3:$C$100,$B$3:$B$100,F$2,$A$3:$A$100,$E3)

)

方案二

首先,我们使用解决方案 1 中的方法生成我们需要的日期列表。
接下来我们需要用=COUNTIF(N3:N22,">0")来计算它们 接下来,我们对解决方案 1 中使用的名称使用相同的公式,我们只是省略了 TRANSPOSE() -> =UNIQUE(FILTER(B3:B100,B3:B100<>""))

接下来,我们将结合使用 ROW()MOD()ROUNDUP 以及我们的“日期计数”来列出我们的姓名和日期。
日期:=INDEX($N$3:$N$9,MOD(ROW()-3,$O$3)+1)

姓名:=INDEX($P$3:$P$100,ROUNDUP((ROW()-2)/$O$3,0))

金额:=SUMIFS($C$3:$C$100,$B$3:$B$100,K3,$A$3:$A$100,J3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 2016-10-13
    • 2012-06-03
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多