【问题标题】:Excel - Formula using priority rules depending on range inputsExcel - 根据范围输入使用优先级规则的公式
【发布时间】:2016-10-19 13:41:21
【问题描述】:

这可能是一个简单的解决方法(虽然我这么认为,但可能不是),所以如果这只是儿戏,我提前道歉。

在我正在处理的 Excel 工作表中,我有一个范围(在本示例中为 A1:A10),它可以包含 3 个变量(不包括空白)之一 - A、B 或 C。

我需要另一个单元格中的公式来查看有问题的范围,并在此优先级中根据以下规则输出一个值:

  1. 如果 A 出现在列中的任何位置,无论其他输入如何,都显示 A;
  2. 如果列中出现B和C,则显示A;
  3. 如果列中只出现B,则显示B;
  4. 如果列中只出现C,则显示C;和
  5. 如果列中的所有单元格都是空白的,则显示空白

对于规则 1-4,不应考虑列中的任何空白单元格。只有当所有单元格都为空白时,即规则 5,才应考虑这一点。

我尝试过 IF 公式,但发现这些公式只考虑单个单元格。 我也曾尝试将 SUMPRODUCT 与 IF 一起使用,但遇到了障碍。我使用的公式是:

IF(SUMPRODUCT(--(--(A1:A10="A")),"A",IF(SUMPRODUCT(--(A1:A10="B")),IF(SUMPRODUCT(--(A1:A10="C")),"A",IF(SUMPRODUCT(--(A1:A10="B")),"B",IF(SUMPRODUCT(--(A1:A10="C")),"C","")))))

现在我知道这看起来很冗长,但在规则 3 之前它工作正常。尝试规则 4 或 5 时,公式仅返回 FALSE

我完全赞成对上述公式进行调整,以便它可以工作,或者完全支持另一个公式,但我已经尝试到处搜索,但找不到任何关于此的内容(尽管这可能取决于我没有表达我的问题/搜索正确)。

任何帮助将不胜感激。提前致谢!

【问题讨论】:

    标签: excel excel-formula excel-2010


    【解决方案1】:

    使用您提供的示例,这将产生所需的结果:

    =INDEX({"","C","B","A"},MATCH(SUMPRODUCT({3,2,1},--(COUNTIF(A1:A10,{"A","B","C"})>0)),{0,1,2,3}))
    

    【讨论】:

      【解决方案2】:

      不是最简单的答案,但也可以:

      {=IF(SUM(--($A$1:$A$10="A")+(($A$1:$A$10<>"A")*(SUM(--($A$1:$A$10="B"))>0)*(SUM(--(A1:A10="C"))>0)))>0,"A",IF(SUM(--($A$1:$A$10="B"))>0,"B",IF(SUM(--($A$1:$A$10="C"))>0,"C",IF(SUM(--(ISBLANK($A$1:$A$10)))=ROWS($A$1:$A$10),""))))}
      

      诚然不如上述解决方案优雅。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-16
        • 2017-04-06
        • 1970-01-01
        • 1970-01-01
        • 2017-05-26
        • 2021-04-29
        相关资源
        最近更新 更多