我有一个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
非常感谢您的帮助!
答案 0 :(得分:2)
属于类别A的物料4的库存为零,因此类别A中所有物料的输出应为“无库存”
因此,如果某个类别中任何项目的库存为0,则该类别中的所有项目应标记为无库存?
在这种情况下,可以将COUNTIFS公式与IF结合使用。使用COUNTIFS,您可以计算出特定类别的行数和库存0。如果该计数为1或更多,则返回IF 无库存。如果不是,则返回库存。
我复制了您的数据集:
我在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")
我是通过以下公式得出的:
希望您可以使其适应您的需求。