使用第一个空白上方的单元格中的值填充非连续的空白单元格

时间:2011-12-14 03:26:47

标签: excel vba openoffice.org

我想知道是否有办法在excel或open office中执行此条件:

if the cell is empty then
    the cell will have the same value as the cell above it
else
    do nothing.

我应该使用宏吗? 请帮帮我我对Excel的经验很少。

c 1 | 2011年10月21日
c 2 |
c 3 |
c 4 | 10/24/2011
c 5 |
c 6 |
c 7 | 10/25/2011
c 8 |
c 9 |
C10 | 10/26/2011

6 个答案:

答案 0 :(得分:23)

  1. 选择包含需要填充的空白单元格的范围。

  2. 点击主页>找到&选择>转到特殊...,将出现一个转到特殊对话框,然后选中空白选项。

  3. 单击“确定”,并选择了所有空白单元格。然后在不改变选择的情况下将公式“= B2”输入到活动单元格B3中。可以根据需要更改此单元格引用。

  4. 按Ctrl + Enter,Excel会将相应的公式复制到所有空白单元格。

  5. 此时,填充的内容是公式,我们需要将形式转换为值。然后选择整个范围,右键单击以选择“复制”,然后按Ctrl + Alt + V以激活“选择性粘贴...”对话框。从Paste中选择Values选项,然后从Operation中选择None选项。

  6. 然后单击“确定”。并且所有公式都已转换为值。

答案 1 :(得分:3)

在Excel中:

如果你有一个表已经有人合并了单元格,或者你正在从一个html站点复制一个表,在那里复制的数据中可能存在很多不一致的地方,比如空行真的应该与前一行有相同的值,这很简单要解决此问题,请转到空列并创建后面的公式。

这假定您在A1中有一个标题,而A2包含第一个数据和一个有效的行值 如果只有其他每个单元格都是空的,您可以执行以下操作:

= if(A2="",A1,A2)

上面的函数检查A2是否为空白,如果是空白,则指定A1的值,如果不是,则指定A2的值。


但是,如果需要填充多个空行,最好执行以下操作:
(假设您要在所有后续空单元格中复制的值的单元格从A2开始,您愿意手动设置以下列中的前两个单元格,第I列:我是表格中的第一个空列)
< / p>

第一步:在单元格I2和I3中,确保相关行存在正确的值 第二步:在单元格I4中输入以下公式:

= if(A4="",if(A3<>"",A3,I3),A4)

上面的函数检查A4是否为空白,如果是空白,它检查A3是否为空白,如果确实不是,则指定A3的值,如果它也是空白,则在I3中指定值,最后,如果A4不是空白,它指定A4的值。

您必须手动拖动公式(因为有空行)。

通过按键字段对列进行排序,可以轻松识别出您不想要的数据后面的任何空行。

如上面Robert所示,您正在处理公式值,因此您不能只是移动它们,覆盖它们的源单元格,但如果您执行“特殊”粘贴,则可以将值直接粘贴到源单元格上。 / p>

答案 2 :(得分:2)

这就是我曾经写过的:

Sub FillInBlankCellsInColumns()
 'Go down and when you find an empty cell, put the value from the previous cell in there.
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Dim MyCounter As Long
MyCounter = 0
    For Each r In Selection
        On Error Resume Next
        If r.Value = "" Then
            r.Value = r.Offset(-1, 0).Value
        End If
    Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

答案 3 :(得分:1)

Debra Dalgleish提供了

  • 手动SpecialCells方法(Excellll引用)
  • VBA SpecialCells方法似乎更像是你的focs领域

Excel Data Entry -- Fill Blank Cells in Excel Column

下的网站上

答案 4 :(得分:0)

或者,您可以在新列中使用以下公式:

D2:=IF(ISBLANK(C2),D1,C2)

  • 在C旁边创建一个新列。
  • 现在将命名上一列D. E列。您的数据在C列,新数据是暂时的 在D栏中创建。
  • 必须手动复制C1中的第一个值 到D1
  • 然后在D2你把这个公式。一直复制公式 下。
  • 然后复制D栏并使用粘贴特殊仅限值 将列D的结果粘贴到C列中的现有数据上。
  • 现在您可以删除D列

这是一个“工作”,但由于你说你没有Excel的经验,写宏可能很有挑战性。

此致

罗伯特·伊尔布林克

答案 5 :(得分:0)

使用Vlookup

=+VLOOKUP("Output",D1:G7,1)
  • 将D1替换为要查找的起始单元格的地址
  • 将G7替换为要查找的结束单元格的地址
  • 将1替换为要从
  • 返回值的列
    Apple   1       Apple
            2       Apple
            7       Apple
    Mango   3       Mango
    =====================
    col1    Col2    Formula