如果在另一个单元格匹配的单元格为空时,如何在行间的Excel中复制单元格数据

我知道标题真的很长,我会尽力解释

我正在尝试将Magento产品转换为Zen Cart(仅适用于背景 – 不应相关)。

我有一个Excel 2010的XLS电子表格,并在其中我有一个产品数据负载:skus,价格,类别等…你明白了。 我将每个产品连同其数据一起列出,每个产品都有唯一的SKU字段。

但是…这些产品中的一些产品不止一个类别,而且我input的方式也不尽相同,每个产品都需要多次列出,每个类别一次。

所以,我做了一个包含两列的sql转储; sku和类别。 我已经把这些值粘贴到excel作为新的行,所以现在我有这样的情况(有更多的条目):

在这里输入图像描述

正如你可以看到每个SKU(左侧突出显示)有一个条目,包含除了类别(右侧突出显示)的所有数据,然后有一个额外的条目,它属于每个类别只包含类别和sku,但没有其他数据。

所以,我需要做的是如何复制所有的数据(除了类别栏)跨所有单元与相同的SKU。 有没有人有任何想法,我怎么能达到这个没有击中Ctrl + V几百次。 我意识到VBA可以很容易地处理这个,但我没有在这方面的线索。

任何帮助不胜感激

我希望你愿意使用第二张纸,并引用数据而不是实际复制。

在Sheet2上,将A1设置为=IF(Sheet1!A1="", "", Sheet1!A1) 。 将其拖放(扩展/填充)到A500 (尽可能多地处理Sheet1中的数据,或者进一步增大数据量)。 同时将A1拖到AA1 ,然后将其拖到AA500

然后将B2设置为=IF($AA2="", Sheet1!B2, B1) ,将其拖动到Z2 ,然后将B2:Z2拖动到B500:Z500

PS如果您的任何数据(列)都是date,您可能需要将它们明确地格式化为Sheet2上的date。 对于任何非默认方式(例如,货币或百分比)格式的任何其他值,同上。 这可能是必要的, 只有对其中有值(而不是空白单元格)的单元格。

你不需要VBA,除非你需要多次这样做。
假设带有您的数据的工作表被称为Source ,结果的工作表被称为Dest ,你可以得到你想要的东西在工作表上的这些步骤Dest

  • 在A1types=Source!A1
  • 在A2types=IF(ISBLANK(Source!A2),A1,Source!A2)
  • select范围A1:XX1(其中XX是表单源的最后一列)
  • 按下Ctrl + R(将第一个单元格复制到右侧)
  • select范围A2:XX ##(其中##是表单源的最后一行)
  • 按Ctrl + R和Ctrl + D(向右和向下复制)

以下是对发生的事情的解释:
第一行是从源中复制的。
第二行的每个单元格只有在该单元格为空时才从Source复制,否则上面的单元格将被复制。

这是快速和肮脏的解决scheme:

  1. select你需要填写的栏目
  2. 按Goto Ctrl-G
  3. 特别的“Alt-S”
  4. 空白( Alt-KEnter
  5. 这应该select所有的空白单元格。 现在键入=B2 (假设你在B3中,即使用活动单元格上方的单元格)。重要提示:按Ctrl-Enter代替Enter键input公式。

完成!

在新的工作表中,通过在单元格A1中input1,在单元格A2中input2,然后select这两个单元格并通过Z填充,在Row1中获取数字1-26。

现在在A2中input以下公式=VLOOKUP(Sheet1!$A1,Sheet1!$A:$AA,VALUE(A$1),FALSE)在范围A2:Z ##中填写此公式(其中##表示您的最后一行数据的)。 然后将Sheet1上的Row1复制到Sheet2上的Row1。

这个公式将直接将数据行复制到它们下面的空行(假设sku仅在存在一行新信息时才改变)。

这将是所有积极的公式,所以我build议在Sheet2上select所有,然后在单元格A1中右键单击,然后按值粘贴。