arrays - 在列中查找值并根据条件更改结果
问题描述
背景:
- 在 AI 列中有主要材料列表(大写字母),其中一些由 B 列中的子材料(小写)组成。
- 在 CI 栏中,对“纯”材料进行了编号。如果一个项目是由其他项目组成的,那么它就是“纯”的,因此它可以是原材料或子组件。
- D 列按特定顺序对主要材料和子材料进行排序。
目标: 在 FI 列中,希望创建与 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)))
如您所见,可读性很差
推荐阅读
- jenkins - Jenkinsfile 主动选择参数
- sql - 在oracle sql中循环
- python - IndexError:元组索引超出范围。在类函数中调用列表类变量
- java - Java:JPanel 上的像素完美绘图
- azure - 从本地计算机连接到 Azure Cosmos DB 时出现“服务当前不可用”
- python - 迭代包含带有数组的嵌套 json dicts 的 Pandas 数据帧
- c# - 出现 NullReferenceException:部署到 IIS 服务器时未将对象引用设置为对象的实例
- cucumber - 短语日期格式的问题
- django - Nginx 403 用于新创建的文件
- html - 单击时如何更改按钮颜色?