1

感谢 stackoverflow 的 Excel 专家帮助我完成看似不可能的项目。我有另一个问题:

我有 2 个工作表,Sheet1 和 Sheet2。

Sheet1有一个产品代码列表和一个从inA获得最低价格的公式:Sheet2B

A      B      C
A100   $10
A200   $12
A300   $45

Sheet2有一个产品代码、价格和描述的列表:

A      B      C
A100   $20    Product One
A100   $10    Product Two
A100   $12    Product Three
A100   $0     Not Found
A200   $25    Product A
A200   $12    Product B
etc, etc, etc

Sheet1, 列B中,我使用以下公式来找到最低的非零价格:

=MIN(IF('Sheet2'!$A$1:$A$20000=A1,IF('Sheet2'!$B$1:$B$20000>0,'Sheet2'!$B$1:$B$20000)))

如何修改它以获取 column 中的描述C并将其放在Sheet1column中C

一如既往,感谢您的时间和精力!

4

3 回答 3

1

我想我得到了答案)将以下内容放入 C1:

=IFERROR(INDIRECT("Sheet2!C"&MATCH(A1&MIN(IF(Sheet2!$A$1:$A$20000=A1,IF(Sheet2!$B$1:$B$20000>0,Sheet2!$B$1:$B$20000))),Sheet2!$A$1:$A$20000&Sheet2!$B$1:$B$20000,0)),"No price / description found")

并且不要忘记按CTRL+ SHIFT+ENTER而不是通常的方式ENTER- 这将定义一个 ARRAY 公式,并在{}其周围产生括号(但不要手动输入它们!)。错误处理也包括在内。

如果需要结合价格和描述的 1 单元解决方案 - 使用这个怪物:

=IFERROR("$"&MIN(IF(Sheet2!$A$1:$A$20000=A1,IF(Sheet2!$B$1:$B$20000>0,Sheet2!$B$1:$B$20000)))&": "&INDIRECT("Sheet2!C"&MATCH(A1&MIN(IF(Sheet2!$A$1:$A$20000=A1,IF(Sheet2!$B$1:$B$20000>0,Sheet2!$B$1:$B$20000))),Sheet2!$A$1:$A$20000&Sheet2!$B$1:$B$20000,0)),"No price / description found")

示例文件也可用:https ://www.dropbox.com/s/tnb3ov7o1s2sper/PriceWithDescr.xlsx

于 2013-01-28T18:48:39.523 回答
1

您可以使用INDEX/MATCH解决方案,例如 C1

=INDEX(Sheet2!C$1:C$20000,MATCH(1,(Sheet2!A$1:A$20000=A1)*(Sheet2!B$1:B$20000=B1),0))

确认CTRL+SHIFT+ENTER

于 2013-01-28T20:55:13.777 回答
0

因为 Sheet2 中的 Product Code 和 Price 列都可能有重复的值,所以我建议在 Sheet2 中创建一个唯一值,您可以使用它来区分不同的价格/产品代码组合。这是我解决这个问题的方法:

第 1 步 - 在 Sheet2 中插入新列

我使用以下公式在当前列 A 之前添加了一个新列:

=CONCATENATE(B2,"-",C2)

此修订版现在将为 Sheet2 生成以下值:

A          B          C          D
A100-20    A100       20         Product One   
A100-10    A100       10         Product Two
A100-12    A100       12         Product Three
A100-0     A100       0          Not Found

第 2 步 - 在 Sheet2 的 C 列中输入新公式

=VLOOKUP(CONCATENATE(A2,"-",B2),Sheet2!A:D,4,FALSE)

这将从 Sheet2 的数据中查找 Sheet1 的 A 和 B 列中的值组合。可以添加额外的错误检查以忽略零价产品,但我没有将其包含在我的公式中,因为您已经在 Sheet1 列 B 中的先前公式中考虑了这一点。当我测试它时,这产生了正确的描述。

如果您无法在此范围内修改工作表,您还可以使用基于迭代 VBA 的解决方案,如有必要,我很乐意演示。

祝你好运!

于 2013-01-28T18:56:07.057 回答