【问题标题】:Lookup value within a column and change outcome depending on criteria在列中查找值并根据条件更改结果
【发布时间】:2021-03-04 22:24:22
【问题描述】:

背景:

  • 在 A 列中,我列出了主要材料(大写字母),其中一些由 B 列中的子材料(小写)组成。
  • 在 C 列中,我对“纯”材料进行了编号。如果一个项目是由其他项目组成的,那么它就是“纯”的,因此它可以是原材料或子组件。
  • D 列按特定顺序对主要材料和子材料进行排序。

目标: 在 F 列中,我希望创建与 D 列中的材料相对应的值列表。对于不是“纯”的材料,但我希望插入连字符。

到目前为止我做了什么: 最初我使用的公式: =XLOOKUP(D3,$B$3:$B$20,$C$3:$C$20) 但如图所示,我收到 N/A 错误,因为在此列表中找不到主要材料。

后来我用过 =XLOOKUP(D3,$B$3:$B$20,$C$3:$C$20,XLOOKUP(D3,$A$3:$A$20,$C$3:$C$20))。这更好,但返回所有材料的值,无论它们是否是纯的。

到目前为止,基本上到目前为止,我已经能够在 B 列中查找 D 列的值,如果失败,则在 A 列中查找值。我现在只是想知道是否有可能进行逻辑测试,为非插入连字符纯材料。所需的输出显示在 H 列中。

如果有人认为这可以通过我完全不同的方法来完成,我将不胜感激。

【问题讨论】:

    标签: arrays excel excel-formula office365


    【解决方案1】:

    好的,根据你已有的,我从 F3 和 F4 中提取公式(后者与 F3 相同,但有调整的引用),并将它们放在 IF 中:

    =IF(XLOOKUP(D4,$B$3:$B$20,$C$3:$C$20,XLOOKUP(D4,$A$3:$A$20,$C$3:$C$20))=XLOOKUP(D3,$B$3:$B$20,$C$3:$C$20,XLOOKUP(D3,$A$3:$A$20,$C$3:$C$20)), "-", XLOOKUP(D3,$B$3:$B$20,$C$3:$C$20,XLOOKUP(D3,$A$3:$A$20,$C$3:$C$20)))
    

    如您所见,可读性很差

    【讨论】:

    • 嗨,是的,我确实尝试过类似的方法:=IF(F3=F4,"-",XLOOKUP(D3,$B$3:$B$20,$C$3:$C$20,XLOOKUP(D3,$A$3:$A$20,$C$3:$C$20))),但这是一个循环引用。我很欣赏它可以在一个单独的列中完成,尽管我想尝试将它全部放在一个列中。 (抱歉我的评论输入得太早了)
    • 另一种说法是我想在=XLOOKUP(D3,$B$3:$B$20,$C$3:$C$20)之后执行一个逻辑测试。我只是觉得这很棘手。
    • 那么除了丑陋和不可读之外,当前版本是否功能齐全?如果我有什么不明白的地方,我很抱歉
    • 效果很好。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 2022-01-25
    相关资源
    最近更新 更多