【问题标题】:How to make an if statement based on multiple boolean variables contained in a single comma delimited cell如何基于单个逗号分隔单元格中包含的多个布尔变量创建 if 语句
【发布时间】:2019-05-03 05:24:10
【问题描述】:

我在 Excel 表中有产品数据。产品具有父/子关系,因此一列是父 sku,第二列是链接到父 sku 的所有子 sku,以逗号分隔的格式。

我有第二张 Excel 表,其中包含所有孩子的库存状态(1 = 有货,2 = 缺货)。

我正在想办法说“如果给定父 sku 的所有子 sku 都缺货,则将父 sku 标记为缺货,如果没有,则将其标记为有货”。

我知道我可以使用 text to columns 将子 sku 分成不同的列,但是我留下了不同长度的行,因为与每个父项绑定的子 sku 的数量各不相同。我考虑过尝试应用 vlookup 或 hlookup 或匹配和索引,但对于我的生活,我想不出一种实用的方法来实现这一点。实际上,我的数据集有数千行长,每个父 sku 有 2 到 30 个子 sku。

仅供参考,我非常精通 Excel 中的公式操作,但我对使用宏一无所知。

【问题讨论】:

    标签: excel


    【解决方案1】:

    这将迭代逗号分隔的文本并汇总所有子状态。如果>0,则返回有货,否则缺货

    =IF(SUMPRODUCT(SUMIFS(G:G,F:F,TRIM(MID(SUBSTITUTE(B2,",",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(B2)-LEN(SUBSTITUTE(B2,",",""))+1))-1)*999+1,999)))),"In Stock","Not Instock")
    

    【讨论】:

    • 这太棒了!谢谢!我们实际上用 2 来表示缺货,而不是 0。这个公式可以适应这个吗?否则我可以进行查找/替换,这很好。
    • 可以,但工作量要大得多。使用 0,1 会更容易
    • 谢谢斯科特。我可以很容易地将其转换为 0、1。无论如何,有没有办法把它改成“如果任何孩子 skus 缺货,让父母出去”而不是“如果 ALL ..”?
    • 这是一个新问题,请创建一个新帖子。
    • 它不允许我单独创建它,因为它说它看起来像这个的副本:(
    猜你喜欢
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多