【问题标题】:Combining Excel sheets/groups of columns by a condition in Excel 2007在 Excel 2007 中按条件组合 Excel 工作表/列组
【发布时间】:2012-11-15 10:37:57
【问题描述】:

有没有一种方法可以组合 2 个 Excel 工作表(或一个 Excel 工作表中的列组),以便一个工作表/组中的行附加到另一个工作表/组,以便某些列值匹配。 澄清: 假设我有 2 张纸 - Sheet1 和 Sheet2。 Sheet1 具有 A、B、C、D 列。 Sheet2 有 A、E、F、G 列。两张表中的 A 列包含相同的数据,但排序方式不同(它不是以传统方式排序(按字母顺序或数字顺序))。我需要将这两张纸合二为一,但需要将它们组合在一起,以便 A 列中的值匹配(如果可能,结果的排序方式应与 Sheet2 相同)。 理想情况下,我正在寻找的功能需要类似于 SQL 的 INNER JOIN 命令。

我使用的是 Excel 2007。

谢谢

【问题讨论】:

    标签: excel excel-2007


    【解决方案1】:

    我想你基本上描述了VLOOKUP 函数。

    您有两张工作表,现在您想创建一个列表,将 A、B、C、D 扩展到 A、B、C、D、E、F、G。

    为此,您可以使用

    Sheet1!E1=VLOOKUP(Sheet1!A1,Sheet2!A:G,5,FALSE)
    Sheet1!F1=VLOOKUP(Sheet1!A1,Sheet2!A:G,6,FALSE)
    Sheet1!G1=VLOOKUP(Sheet1!A1,Sheet2!A:G,7,FALSE)
    

    如果您需要创建额外的 sheet3,请使用:

    Sheet3!A1=Sheet1!A1
    Sheet3!B1=VLOOKUP(Sheet3!A1,Sheet1!A:D,2,FALSE)
    Sheet3!C1=VLOOKUP(Sheet3!A1,Sheet1!A:D,3,FALSE)
    Sheet3!D1=VLOOKUP(Sheet3!A1,Sheet1!A:D,4,FALSE)
    Sheet3!E1=VLOOKUP(Sheet3!A1,Sheet2!A:G,5,FALSE)
    Sheet3!F1=VLOOKUP(Sheet3!A1,Sheet2!A:G,6,FALSE)
    Sheet3!G1=VLOOKUP(Sheet3!A1,Sheet2!A:G,7,FALSE)
    

    希望这个解释是正确的。

    编辑:

    顺便说一句,由于 Excel 主要不是为了充当数据库,所以这个操作有点乱,因为它不是动态缩放的。至少在第二种方法中,使用第三张纸。您必须将 A1 复制至少那么远,以匹配 Sheet1 中最后使用的行。如果你应该进一步复制它,这样你就不必担心一段时间了,你可能需要对空单元格进行防错。

    【讨论】:

    • 我将使用您提供的第一个代码(我不需要新工作表),但 Excel 向我抛出错误(单元格值变为 #REF)。这个错误的原因是什么?
    • 我猜,您可能需要根据您的情况调整公式。你能发布你实际使用的公式吗? Sheet1 和 Sheet2 是您的工作簿的有效工作表名称吗?
    • 我根据自己的情况调整了公式。我有一个包含客户信息的 Excel 文档。我们需要向这些客户发送邮件,而处理运输的公司需要客户的地址来按区域对货物进行分类。为了保护我们客户的隐私,我创建了一个仅包含控制号和客户地址的新文档。运输公司返回该文档(已排序),其中包含 2 个新列。我需要将这些列附加到现有文档中,以便将这 2 列的值附加到正确的客户。
    • 好的,不需要你的数据——但你得到的错误是,你的一些引用不能正常工作。因此,我要求只查看您实际调整的公式。在我的示例中,我使用了 Sheet1 和 Sheet2,如果您必须在不同的工作簿之间合并,则必须使用文件名进行扩展。但是您应该能够借助 excel 中的自动选择来设置这些公式,只需开始编写 =VLOOKUP( 然后从您的示例中选择 Sheet1 的 A1。
    猜你喜欢
    • 2019-02-21
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多