Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 查找列中的值并根据条件更改结果_Arrays_Excel_Excel Formula_Office365 - Fatal编程技术网

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列按特定顺序对主材质和子材质进行排序

目标: 在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列显示了所需的输出


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

好的,根据您已有的,我从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)
之后执行一个逻辑测试。我只是觉得这很棘手。所以除了丑陋和不可读之外,当前的版本功能齐全吗?如果我不明白,我向你道歉。非常感谢。