我有一门技术专栏和一门使用这些技术的公司专栏。
我需要搜索技术列(每个单元格包含多种技术)并返回所有匹配的公司
样本数据:
import React, { PureComponent } from 'react';
import AlertMessage from 'vf-ent-ws-alert-message';
import {defaultData, constStyle} from './ValidationDefData-Props';
const ValidationHOC = (PassedComponent, props, key= + new Date(), content) => {
const HOC = () => {
let alertData = Object.assign({}, defaultData); ;
if(content){
alertData.messageBody = content;
}
return (
<div className={constStyle.wrapper}>
<AlertMessage data={alertData} />
<PassedComponent key={key} {...props} />
</div>
);
}
return HOC;
};
export default ValidationHOC;
在此示例中,我想在技术列中使用Dotmailer搜索公司,并从公司列中返回所有匹配值(公司)作为逗号分隔的字符串。
所以这里的返回应该是:Companies Technologies
ACME MailChimp, Dotmailer, Dynamics
Phazer Eloqua, Salesforce
Example Dynamics, Dotmailer
Other MailChimp, Eloqua
我已经尝试过IF和VLOOKUP,但无法正常工作。
答案 0 :(得分:0)
我假设您的数据在A,B列中。
现在让我们利用一些辅助细胞:
单元格F1将是您输入搜索条件的单元格。
列C将用于表示匹配项,我们在C2及以下版本中使用以下公式查找并显示它们:=IF(IFERROR(Find($F$1,B2),"")<>"";A2)
不幸的是,对空单元格使用级联是行不通的,因此我们也需要辅助列D。在D列中,我们使用以下公式从C列中找到的所有匹配项中构建一个字符串。从D2开始:=IF(C2<>"";C2;"")
,然后在D3:=IF(D2<>"";IF(C3<>"";D2&","&C3;D2);IF(C3<>"";C3;""))
中向下拖动。
然后,单元格F2将通过插入=INDIRECT("D"&COUNTA(D:D))