Excel公式可在列中查找相似的值并根据输出返回值

时间:2019-09-03 08:03:11

标签: excel excel-formula

我有一个Excel工作表,其中列出了我要出售的所有产品。这些产品分为不同的类别。如果某个类别中的任何一种产品缺货,我想将该类别中的所有产品归类为缺货。

我可以在if语句中这样做吗?我需要在此公式中添加其他多个条件。如果在if语句中无法执行此操作,该怎么办?

我已经尝试过使用Google搜索,但是我确定我没有找到正确的选择,因为我没有任何解决方法。

作为一个简化的示例,我列出了类别和其中的产品清单。如果类别中任何产品的库存为0,则输出应为“无库存”,否则输出应为“库存”。您会看到属于类别A的物料4的库存为零,因此类别A中所有物料的输出应为“无库存”

Categories  Inventory   Output
A           2324      No Inventory
A           66        No Inventory
A           9129      No Inventory
A           0         No Inventory
B           1453         Inventory
B           967          Inventory
B           5109         Inventory
B           75           Inventory
B           1069         Inventory

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

属于类别A的物料4的库存为零,因此类别A中所有物料的输出应为“无库存”

因此,如果某个类别中任何项目的库存为0,则该类别中的所有项目应标记为无库存

在这种情况下,可以将COUNTIFS公式与IF结合使用。使用COUNTIFS,您可以计算出特定类别的行数和库存0。如果该计数为1或更多,则返回IF 无库存。如果不是,则返回库存

我复制了您的数据集:

enter image description here

我在C列中使用的公式是:

/* delimiter for dictionary */
#define DELIMS "\t"

unsigned void load_dictionary(const char * filename) {
        FILE * pfile;
        char line[LINE_MAX], * word, * translation;

        /* ensure file can be opened */
        if ( !(pfile = fopen(filename,"r")) )
            return icount;

        /* read lines */
        while ( (fgets(line, LINE_MAX, pfile)) ) {
            /* strip trailing newline */
            int len = strlen(line);
            if (len > 0 && line[len-1] == '\n') {
              line[len-1] = '\0';
              --len;
            }

            /* separate word and translation */
            word = line + strspn(line, DELIMS);

            if ( !word[0] )
                continue; /* no word in line */
            translation = word + strcspn(word, DELIMS);
            *translation++ = '\0';
            translation += strspn(translation, DELIMS);
        }
 }

希望您可以使其适应您的需求。

更新2: OP希望将类别A中非零的所有项目归为“暂停”

不确定我是否理解正确,但是我想您想检查商品库存是否为0。如果为true,则该特定商品应返回暂停此商品。如果不是,则返回无库存。当然,如果特定类别的商品都没有得到库存0,那么它应该返回库存

这就是我对您的评论的理解。您可以使用第二个IF来像这样修改先前的公式。

=IF(COUNTIFS($A$2:$A$10;A2;$B$2:$B$10;0)>0;"No inventory";"Inventory")

我是通过以下公式得出的:

enter image description here

希望您可以使其适应您的需求。