使用第一个空格之上的单元格中的值填充非连续的空白单元格
我想知道是否有办法在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
-
select包含您需要填充的空白单元格的范围。
-
单击主页>查找并select>转到特殊…,将出现转到特殊对话框,然后选中空白选项。
-
点击确定,所有的空白单元格都被选中。 然后在不改变select的情况下将公式“= B2”input到活动单元格B3中。 该单元格引用可以根据需要进行更改。
-
按Ctrl + Enter,Excel将复制相应的公式到所有空白单元格。
-
在这一点上,填充的内容是公式,我们需要将forms转换为值。 然后select整个范围,右键单击select复制,然后按Ctrl + Alt + V来激活“select性粘贴…”对话框。 然后从粘贴中select值选项,然后从操作中select无选项。
-
然后单击确定。 所有的公式都被转换成了值。
这是我曾经写的:
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公式