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

我想知道是否有办法在Excel或Open Office中有条件地执行此操作:

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

我应该使用macros吗? 请帮助我 我对Excel很less有经验。

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

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

  2. 单击主页>查找并select>转到特殊…,将出现转到特殊对话框,然后选中空白选项。

  3. 点击确定,所有的空白单元格都被选中。 然后在不改变select的情况下将公式“= B2”input到活动单元格B3中。 该单元格引用可以根据需要进行更改。

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

  5. 在这一点上,填充的内容是公式,我们需要将forms转换为值。 然后select整个范围,右键单击select复制,然后按Ctrl + Alt + V来激活“select性粘贴…”对话框。 然后从粘贴中select值选项,然后从操作中select无选项。

  6. 然后单击确定。 所有的公式都被转换成了值。

这是我曾经写的:

 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 

在Excel中:

如果你有一个表有人已经合并了单元格,或者如果你从一个HTML网站复制一个表格,在复制的数据中可能存在许多不一致的情况,例如空行,它们应该和前一行的值相同,这是一个简单的方法解决这个问题是去空列,并创build下面的公式。

这假设你在A1中有一个头,A2包含第一个数据和一个有效的行值。
如果只有其他所有单元格都是空的,则可以执行以下操作:

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

上述函数检查A2是否为空,如果是,则赋值A1,否则赋值A2。

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

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

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

上面的函数检查A4是否为空,如果是,则检查A3是否为空,如果不是,则赋值A3,如果为空,则赋值为I3,最后如果A4不是空白,它分配A4的值。

您将不得不手动拖动公式(因为有空行)。

任何空行后面的数据,你不想要的应该很容易通过关键字段列sorting标识。

正如Robert所指出的那样,你正在处理公式值,所以你不能移动它们,覆盖它们的源单元格,但是如果你做了一个“特殊的”粘贴,你可以将这些值直接粘贴到源单元格上。

Debra Dalgleish提供了两个

  • 手动SpecialCells方法 (Excell指的是)
  • VBA SpecialCells方法似乎更像是你的焦点领域

在她的网站下的Excel数据input – 在Excel列中填充空白单元格

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

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

  • 在C旁边创build一个新列
  • 先前的列D现在将被命名为列E.您的数据在列C中,新的数据临时在列D中创build。
  • C1中的第一个值必须手动复制到D1
  • 然后在D2你把这个公式。 一直向下复制公式。
  • 然后复制D列并使用Paste-Special Values Only将列D的结果粘贴到列C中的现有数据上。
  • 现在,您可以删除列D

这是多一点“工作”,但既然你声明你没有在Excel中的经验,写一个macros可能是具有挑战性的。

问候,

罗伯特·伊尔布林克

使用Vlookup

 =+VLOOKUP("Output",D1:G7,1) 
  • 将D1replace为要查找的起始单元格的地址
  • 将G7replace为结束单元格的地址进行查找
  • 将1replace为要从中返回值的列
    苹果1苹果
             2苹果
             7苹果
    芒果3芒果
     =====================
     col1 Col2公式