gpt4 book ai didi

excel - VBA复杂的vlookup

转载 作者:行者123 更新时间:2023-12-04 20:18:09 28 4
gpt4 key购买 nike

好的,我看到了许多与我相似的问题,但没有一个是完全准确的所以答案没有帮助。虽然它可能不完全是一个 vlookup,但过程与一个类似,所以这是我能想到的最接近标题的东西。

我在文档 A 中有一列 (A) 值,我希望 excel 遍历每个值并查看文档 B 以在列 (A) 中找到相同的值。对于它找到的每个值,我想做三件事:

  • 我希望它抓取文档 B 中找到的每个匹配值右侧两个单元格的值,并将其粘贴到文档 A
  • 列 A 中值右侧的一个单元格
  • 我希望它查看文档 B 中找到的每个匹配值右侧的值 3,如果该值是“时间”,则将字母“T”放在文档 A 列中值右侧的两个单元格 A。
  • 如果在文档 B 中找到的每个匹配值右侧的四个单元格的值 > 5 我希望 excel 用公式 = 的值(列G/列 H) 在文档 B 中的同一行。

  • 如果我的措辞令人困惑,我基本上想做一个更复杂的 vlookup。文档 A 只有 A 列,我想查看 A 列以使用文档 B 中的表格填写 B、C 和 D 列

    如果您有任何问题,请让我知道,并提前感谢您能给我的任何帮助。

    最佳答案

    你想做的每一件事都是从一个简单的“VLOOKUP”开始的,但有些事情会有所不同。为简化起见,我们应该将范围命名为“A”和“B”。为此,您可以选择属于“A”的所有单元格,然后在地址框中(屏幕左上角)输入名称。我们称它为“RangeA”。同样,选择属于区域 B 的所有单元格(第一列到第八列;确保不包括标题),并将其命名为 RangeB。现在我们可以开始了:

    "For each value in A, find corresponding value in B, and return the value two to the right":



    这是一个简单的 VLOOKUP。在 A(可能是 B1)右侧的单元格中输入此公式:
    =VLOOKUP(A1, RangeB, 3, FALSE)

    说明:在名为 RangeB 的范围内查找单元格 A1 中的值。找到完全匹配(即“FALSE”)。返回第 3 列(右侧两个)中的相应值。将公式一直向下拖动(快捷方式:选中单元格后双击右下角的小方 block )。

    I want it to look at the value three to the right of each matched value found in document B and if that value is "time" put the letter "T" two cells to the right of the value in column A of document A.



    这是一个 VLOOKUP,后跟一个 IF。将以下公式放在 A 右侧的两个单元格(可能是 C1)并像以前一样向下拖动:
    =IF(VLOOKUP(A1, RangeB, 4, FALSE) = "time", "T", "")

    解释:像以前一样向上看(但第 4 列,即“向右三”)。测试找到的值。如果是“时间”,则在此单元格中输入“T”;否则,输入“”(即什么都没有)。

    if the value four cells to the right of each matched value found in document B is > 5 I want excel to fill the cell three cells to the right of the value in column A of document A with a formula = the value of (column G / column H) in document B for that same row.



    找到匹配,取比率。使用 MATCH 函数(在工作表上的隐藏列中)只进行一次查找会更快,因此我们有对行号的引用(我们需要它三次),但这不是必需的。除非您的工作表有数千行,否则您不会注意到性能差异。根据 this thread在公式中没有“快速方法”来实现这一点。
    =if(VLOOKUP(A1, RangeB, 5, FALSE) > 5, VLOOKUP(A1, RangeB, 7, FALSE)/VLOOKUP(A1, RangeB, 8, FALSE), "")

    你有它。请注意 INDEX(MATCH... (@user2140261的首选方法)可以实现与 VLOOKUP相同的效果但它涉及两个功能。但是,如果您决定使用 MATCH 创建隐藏列函数,然后你可以使用 INDEX函数来实现所有其他事情 - 这将是最有效的,因为您只使用一个 MATCH(而不是为每一列重新计算一次或多次)。

    我希望你能从这里弄清楚。

    关于excel - VBA复杂的vlookup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16342735/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com