【问题标题】:How to autofill values in excel based on the cells above and below如何根据上方和下方的单元格在excel中自动填充值
【发布时间】:2017-12-12 18:28:09
【问题描述】:

好人,我有一个充满唯一 ID 的表(如下所述),但缺少一些 ID 的值。

我想要一个公式/代码根据任何单元格的上方和下方的值填写空白。

例如:这里两个唯一id之间有两个空行~(620006845180)。

谁能帮我用与上面和下面相同的值填充这些空间。 :( 我被卡住了。

    620006845180
    xxxxxxxxxxxx
    xxxxxxxxxxxx
    620006845180
    620006845180

【问题讨论】:

  • @pnuts 是的..主要是。在几行中,有不同的值,但对于具有相同值的单元格,它应该是相同的。
  • 例如:658697890 xxxxxxxxxx 658697890 ~ 这个xxxxxx应该是658697890。
  • 您是否总是想用上面的值填充空白空间,或者是否存在应该用下面的值代替的情况?
  • 那么如果上面和下面的值不同会怎样呢?
  • @AShtonMorgan 当有不同的值时,我会将这些单元格保留为空白。但是当上面和下面有相同的值时,空行应该用完全相同的值填充。你会帮忙吗?

标签: excel excel-formula missing-data excel-2016 vba


【解决方案1】:

好的,当然。这假设 id 在 A 列中

Sub FillBlankCells() 

Dim lastRow As Long: lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Dim IDRange As Range: Set IDRange = Range("A1:A" & lastRow)
Dim rng As Range

For Each rng In IDRange
  If rng.Value = "" Then
    If rng.End(xlUp).Value = rng.End(xlDown).Value Then _
    rng.Value = rng.End(xlUp).Value
  End If
Next rng

End Sub

【讨论】:

  • 像魅力一样工作。非常感谢你:')
【解决方案2】:

由于循环引用,您不能在同一列中执行此操作。但是您可以使用另一列来执行此操作。

我假设您在 A 列和第 2 行中有这些数字,您在 B 中插入一个空列,然后在 B2 中输入以下公式。然后从单元格 B2 中复制 B 列的其余行。然后隐藏你的A列,你会在B列中得到你想要的。

=IF(A2<>"",A2,IFERROR(IF(MATCH(B1,A3:A100,0)>0,B1,""),""))

如果您觉得可能有超过 100 个空行。然后您可能需要将公式中的 100 替换为您希望为空的最大行数。

【讨论】:

  • 有 30 lacs 空行,总共没有。行数是 88 lacs。一个很好的建议。谢谢你:)
  • 如果两个数字之间连续有 30 个 lacs 空行,那么宏会是更好的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多