这是我的 excel 问题。我有 3 个选项卡,第一个选项卡包含不时更新的数据,并且行数在不断变化。选项卡 2 有一个公式,用于从选项卡 1 中推断出特定信息。选项卡有一个数据透视表,它使用选项卡 2 中的数据来显示结果。
问题在于,为了确保覆盖标签 1 中输入的所有数据,标签 2 中的公式被手动复制到第 500 行。因此导致数据透视表中的总数错误,并且由于标签 2 的结果而包含空白。
所以我需要一个宏解决方案,它应该执行以下操作:1. 计算选项卡 1 中填充的行数2. 对每一行连续应用所需的公式,直到达到选项卡 1 中的行数,还要更改选项卡 2 中的每一行以正确对应于选项卡 1 中的每一行。
例如,在选项卡 1 中输入 100 行,在选项卡 2 中为每一行应用 100 个公式,这些公式与选项卡 1 中的每一行都有正确的行相对应(与复制每一行的公式相同)。
这将解决我的问题,因为不在数据透视表中包括空白,因此总数将始终等于选项卡 1 的总数。
PS 我尝试让 Pivot 忽略空白、0、错误等,但它仍然会计算我复制公式的所有行,无论它提取了什么。所以这对我来说不起作用。
非常感谢您的帮助。
答案1
在分析了原帖之后,我发现你只有两个问题。
计算填充的行数为 Tab1。
为 Tab2 中的每一行编写并执行公式。
为此,我想向您展示不需要 VBA 的整个过程。
为了更好地理解,我采用了较小的数据范围。
第一个任务是统计非空行。为此,您可以使用任何公式。
=COUNTA(A8:B12)
=(ROWS(A8:A12) + ROWS(B8:B12)) - COUNTIF(A8:B12, "")
=行(A8:B12)* 列(A8:B12)-COUNTBLANK(A8:B12)
注意:您获得的行数是7。实际上每个公式都计算数据范围内的非空白单元格。
如果你写,
= CountA(A1:A8) 得到4。
选择合适的,我更喜欢第一套,原因很简单。因为您需要用公式填充 TAB2。而公式需要数据区域中的值,因此从技术上讲,行有空白单元格,必须从练习中退出。
现在是第二个任务,在Tab2中写入公式。
=IF(AND(Sheet1!A8,Sheet1!B8<>""),Sheet1!A8+Sheet1!B8,"行没有数据")
将公式拖动到所需位置。
请记住这是一个示例公式,请用您的公式替换它。
希望解决方案能解决这个问题。如果有不同意见,请发表评论。