如果25%匹配或更多,则总结值

时间:2015-07-27 15:01:59

标签: excel excel-formula

有没有办法使用公式来获得excel来查看值并确定它们是否至少有25%匹配然后添加它们的值。有点像vlookup和IF功能相结合,但我不知道如何做25%的部分。我问这个的原因是因为我的公司名称是同一家公司的数据集,但它们都以不同的方式键入,因此excel将它们视为独立的公司。例如:

#include <fstream>
#include <strtk.hpp>   // http://www.partow.net/programming/strtk

using namespace std;

// using strings instead of character arrays
class Employee
{
    public:
    int index;
    int employee_number;
    std::string name;
    std::string department;
    std::string band;
    std::string location;
};


std::string filename("empdata.txt");

// assuming the file is text
std::fstream fs;
fs.open(filename.c_str(), std::ios::in);

if(fs.fail())  return false;   

const char *whitespace    = " \t\r\n\f";

const char *delimiter    = "|";

std::vector<Employee> employee_data;

// process each line in turn
while( std::getline(fs, line ) )
{

// removing leading and trailing whitespace
// can prevent parsing problemsfrom different line endings.

    strtk::remove_leading_trailing(whitespace, line);


    // strtk::parse combines multiple delimeters in these cases

    Employee e;

    if( strtk::parse(line, delimiter, e.index, e.employee_number, e.name, e.department, e.band, e.location) )
    {
         std::cout << "succeed" << std::endl;
     employee_data.push_back( e );
    }

}

我需要它才能意识到所有拥有“XYZ”的公司都是相同的,并且要添加所有价值。 “ABC”也是如此。再一次,我不完全确定这是可能的,但我还没有找到一种方法来获得擅长为我总结。

旁注我可以手动完成,但问题是数据集总是在变化,所以我需要一个可以识别每个单元格中相似性的公式。

2 个答案:

答案 0 :(得分:3)

尝试使用Sumproduct。我假设您的所有A列都将以公司名称开头。 (即没有'公司XYZ',只有'XYZ [...]'。如果情况并非总是如此,请告诉我。

这有用吗?我假设公司是上校A,价值是上校B - 去第7行。

=SUMPRODUCT(--(LEFT($A$2:$A$7,LEN(E2))=E2),--($B$2:$B$7>=25),$B$2:$B$7)

因此,如果一个单元格具有“XYZ”作为公司,并且该行的“值”为25或更大,则它将加在一起。 XYZ单元格等于65,您可以看到ABC正确计算39。

enter image description here

编辑:这是一个截图,使用命名范围可能更容易看到公式中的位置:

enter image description here

答案 1 :(得分:0)

是的,尝试SUMPRODUCT它很棒。很简单,它通过列B查看公司名称,该公司名称将名称中的左侧三个字符与您在单元格E3中键入的内容相匹配,并对值列中的值进行求和。

=SUMPRODUCT(--(LEFT(B4:B9,3)=E3)*1,C4:C9)