在一列中搜索一个值,然后从对应行的第二列返回连接的值

时间:2018-09-26 09:25:32

标签: excel excel-formula

我有一门技术专栏和一门使用这些技术的公司专栏。

我需要搜索技术列(每个单元格包含多种技术)并返回所有匹配的公司

样本数据:

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,但无法正常工作。

1 个答案:

答案 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))

返回结果