1

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

我正在尝试将 Magento 产品放入 Zen Cart(仅限背景 - 不应该相关)。

我有一个 excel 2010 xls 电子表格,其中有大量产品数据:skus、价格、类别等……你明白了。我列出了每个产品及其数据一次,每个产品都有一个唯一的 SKU 字段。

但是......其中一些产品属于多个类别,而我导入的方式,每个产品都需要多次列出,每个类别一次。

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

在此处输入图像描述

正如您所看到的,对于每个 sku(左突出显示),除了类别(右突出显示)之外,还有一个包含所有数据的条目,然后它所属的每个类别都有一个附加条目,其中仅包含类别和 sku,但没有其他数据。

所以,我需要做的是如何在具有相同 sku 的所有单元格中复制所有数据(除了类别列)。有谁知道如何在不按 Ctrl+V 数百次的情况下实现这一点。我意识到 VBA 可能很容易处理这个问题,但我在这方面没有任何线索。

非常感谢任何帮助

4

4 回答 4

3

我希望您愿意使用第二张表,并参考数据而不是实际复制。

在 Sheet2 上,设置A1=IF(Sheet1!A1="", "", Sheet1!A1)。将其向下拖动(扩展/填充)A500(与 Sheet1 上的数据一样多,或者进一步,以允许增长)。也拖动A1AA1,然后将其向下拖动到AA500

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

PS 如果您的任何数据(列)是日期,您可能需要将它们明确格式化为 Sheet2 上的日期。对于以任何非默认方式格式化的任何其他值(例如,货币或百分比)也是如此。可能只需要对其中包含值的单元格(而不是空白单元格)执行此操作

于 2013-01-08T23:16:45.843 回答
2

您不需要 VBA,除非您需要多次执行此操作。
假设调用了包含您的数据的工作Source表并调用了具有结果的工作表Dest,您可以按照工作表上的以下步骤获得所需的内容Dest

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

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

于 2013-01-09T00:09:59.597 回答
1

这是快速而肮脏的解决方案:

  1. 选择需要填写的栏目
  2. 按转到Ctrl-G
  3. 特殊的“Alt-S”
  4. 空格 ( Alt-K, Enter)
  5. 这应该选择所有空白单元格。现在键入 =B2(假设您在 B3 中,即使用活动单元格上方的单元格) 重要提示:按Ctrl-Enter而不是 Enter 输入公式。

完毕!

于 2013-01-09T07:41:18.683 回答
0

在新的工作表上,通过在单元格 A1 中键​​入 1,在单元格 A2 中键入 2,然后选择这两个单元格并通过 Z 填充,在第 1 行的顶部获得数字 1-26。

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

这个公式会将数据行直接复制到它们下面的空行中(假设 sku 仅在有一行新信息的地方发生变化。

这将是所有活动公式,因此我建议在 Sheet2 上选择所有并在单元格 A1 中单击鼠标右键,然后按值粘贴特殊值。

于 2013-01-09T00:48:10.420 回答