根据集合中最早的日期值返回值

时间:2015-10-26 20:07:14

标签: excel excel-formula

我正在寻找一个公式,根据B栏中最早的日期,在我附加的样本表中A列的值中,从E列返回值。

在这个例子中,我寻求A公司50%,B公司75%,公司C 50%。

Sample Table

提前致谢

2 个答案:

答案 0 :(得分:0)

获取列A的值为“A”时的百分比:

=MAX((MIN(IF(B2:B99*(A2:A99="a"),B2:B99))=B2:B99)*E2:E99)
  

这是一个数组公式,必须使用 Ctrl + Shift + Enter 确认。

注意:如果您的数据比第99行进一步延伸,则增加公式中的99。

注意:您可以修改"a""b"公式中心的"c"。更好的是对包含要计算的值的单元格的引用。例如,假设您在单元格G1中输入A,您可以这样做:

=MAX((MIN(IF(B2:B99*(A2:A99=G1),B2:B99))=B2:B99)*E2:E99)

答案 1 :(得分:0)

假设样本数据位于A1:E7 (根据需要调整公式)

(输入 FormulaArray [Ctrl] + [Shift] + [Enter] 同时,如果输入正确,您会在公式周围看到{ }

  • 要列出公司在G2`中输入此FormulaArray并复制到最后一条记录

    =IFERROR( INDEX( $A$1:$A$7, MATCH( 0, COUNTIF( $G$1:$G1, $A$1:$A$7 ), 0 ) * 1 ), "" )
    
  • 要为每个公司提取最早的% Passed,请在FormulaArray中输入此H2并复制到最后一条记录

    =IF( EXACT( $G2, "" ), "",
    INDEX( $E$1:$E$7,
    MATCH( SMALL( IFERROR( $B$1:$B$7 * ( $A$1:$A$7 = $G2 ) * 1, 0 ),
    1 + COUNTIF( $A$1:$A$7, "<>" & $G2 ) ),
    $B$1:$B$7 * ( $A$1:$A$7 = $G2 ) * 1, 0 ) ) )
    

enter image description here