在Excel中填写,但基于多个值


6

我有一个电子表格(不是我创建的),它在一列中有空白条目,它们应该有真正的数据。我想取每个空单元格并用它上面最近的值填充它。我正在寻找尽可能少的人工干预,因为我必须反复做。

我认为以前版本的Excel,或者可能是遥远过去的另一个电子表格,默认情况下会这样做 - 也就是说,如果你选择了foo和bar的列,并选择相当于“fill down”,你会得到在WANT专栏中有什么。我在Excel中实际得到的是GET专栏。

HAVE:            WANT:           GET:
foo     1        foo     1       foo     1
        2        foo     2       foo     2
bar     1        bar     1       foo     1
        2        bar     2       foo     2
        3        bar     3       foo     3

我担心这可能需要一个宏来正确完成。我曾经是一个使用Excel宏的高手,然后突然他们都在VB中。

我的后备位置是将整个内容转储到CSV并编写一个Python脚本,但如果有任何方法可以在Excel中进行,那将更为可取。即使它涉及几个不同的手动步骤,这很好; 每组线都不是一步。也就是说,“复制列,对其执行X,剪切并将其粘贴”的过程将起作用,但“每次出现foo或bar时执行X”都不会。这些文件太大了。

任何想法都表示赞赏!

Answers:


7

Excel先生可以为预带色版本的Excel提供答案。以下是Excel 2007的说明。在A列中使用foo / bar,在B列中使用数据:

  1. 从上到下选择A列中的所有数据。
  2. 单击主页 - >查找和选择 - >转到特殊
  3. 单击“空白”并点击“确定”。(此时,应选择列中的所有空白,并且单元格A2应为活动单元格。
  4. 按“=”,然后按向上选择单元格A1。
  5. CtrlEnter将公式复制到所有选定的单元格中。

可选步骤7:如果只需要值,请复制整个列,并将“粘贴特殊”值仅覆盖在顶部。


这并没有完全按照提供的方式工作,但引用的页面让我在那里。谢谢!很抱歉没有回复这么久 - stackoverflow给我发电子邮件,但显然超级用户没有。
Jenn D. 2010年

我恰好需要再次这样做,并决定再试一次。我没有遇到任何困难。你知道哪个步骤给你带来了麻烦吗?
technomalogical 2010年

这非常方便。我注意到的一件事,参考单元格(例如,在这种情况下= A1)必须是“通用”格式。如果它是“文本”它不起作用。一时让我疯狂。是的,我知道这是一百年前的事了......还是金子。
Minnow

2

要手动完成:

在foo-bar列(例如A)和数字列(现在为C)之间添加一列(B)。

B1中的公式类似于=A1B2中的公式(并复制到数据的末尾)=if(A2="",B1,A2)。B列现在几乎都有你想要的foo-bars,但它们是公式而不是文本的结果。

将列B和paste special它作为值复制到A列中。

您现在可以删除B列。

如果你明白这个想法,那么写下来可能比写下描述更快,但你是否更喜欢Python脚本将取决于电子表格的数量......

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.