Arrays 查找列中的值并根据条件更改结果
背景:Arrays 查找列中的值并根据条件更改结果,arrays,excel,excel-formula,office365,Arrays,Excel,Excel Formula,Office365,背景: 在A列中,我列出了主要材料(大写字母),有些材料由B列中的子材料(小写字母)组成 在C栏中,我对“纯”材料进行了编号。一个项目是“纯”的,只要它是由其他项目组成的,因此它可以是原材料或子组件 D列按特定顺序对主材质和子材质进行排序 目标: 在F列中,我希望创建一个与D列中的材料对应的值列表。对于非“纯”材料,我希望插入一个连字符 到目前为止我所做的: 最初我使用的公式是: =XLOOKUP(D3,$B$3:$B$20,$C$3:$C$20)但如图所示,我得到一个N/A错误,因为在此
- 在A列中,我列出了主要材料(大写字母),有些材料由B列中的子材料(小写字母)组成
- 在C栏中,我对“纯”材料进行了编号。一个项目是“纯”的,只要它是由其他项目组成的,因此它可以是原材料或子组件
- 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列显示了所需的输出
如果有人认为这可以通过我的方法或完全不同的方法来实现,我将不胜感激。好的,根据您已有的,我从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$A$20))
。我很感激它可以在一个单独的专栏中完成,尽管我想尝试将它全部放在一个专栏中。(对不起,我的评论输入得太快了)另一种说法是,我想在=XLOOKUP(D3,$B$3:$B$20,$C$3:$C$20)
之后执行一个逻辑测试。我只是觉得这很棘手。所以除了丑陋和不可读之外,当前的版本功能齐全吗?如果我不明白,我向你道歉。非常感谢。