Excel – 使用取决于范围input的优先级规则的公式

这可能是一个简单的解决办法(虽然我这样想,也许并不是这样),所以如果这只是小孩子的游戏,我提前道歉。

在我正在工作的Excel表中,我有一个范围(为了这个例子是A1:A10),它可以包含3个variables之一(不包括空格) – A,B或C.

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

  1. 如果A出现在列的任何位置,则无论其他input如何,均显示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",""))))) 

现在我知道这似乎longwinded,但直到规则3它工作正常。 在尝试规则4或5时,公式只返回FALSE

我都是为了上面的公式被tweeked,所以它的工作原理或另一个公式,但我已经尝试到处search,找不到任何东西(虽然这可能是我不是正确的措辞我的问题/search措辞) 。

任何帮助将非常感激。 提前致谢!

使用你提供的例子,这将产生预期的结果:

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

不是最简单的答案,但它也适用:

 {=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),""))))} 

诚然,不像上述解决scheme一样优雅。