Excel formula 跨多个数组的百分位函数
所以我现在有excel中的数据Excel formula 跨多个数组的百分位函数,excel-formula,excel-2010,Excel Formula,Excel 2010,所以我现在有excel中的数据 A B C 2015-1 Test 1 23 2015-2 Test 1 12 2015-3 Test 1 43 2015-4 Test 1 32 2015-5 Test 1 3 2015-6 Test 1 90 2015-1 T
A B C
2015-1 Test 1 23
2015-2 Test 1 12
2015-3 Test 1 43
2015-4 Test 1 32
2015-5 Test 1 3
2015-6 Test 1 90
2015-1 Test 2 200
2015-2 Test 2 123
2015-3 Test 2 21
2015-4 Test 2 40
2015-5 Test 2 17
2015-6 Test 2 138
2015-1 Test 3 160
2015-2 Test 3 55
2015-3 Test 3 30
2015-4 Test 3 74
2015-5 Test 3 67
2015-6 Test 3 89
现在,我有了它,用户可以查看特定时间段(不一定是所有日期)的数据(例如,从2015-1到2015-4)。因此,当用户选择他们想要的日期时,我想在B列中的所有不同测试场景中获取该日期的数据百分比(C列)。现在只有3个,但最多会有100个不同的测试用例
我知道它可以做=百分位((test1_数据,test2_数据,test3_数据),1),
但是我将不得不对100多个不同的测试用例进行百分位数计算,而我现在设置它的方式似乎效率很低。有没有一种方法可以做到这一点,而不必手动输入100个不同的数组 根据您的表格,按照以下公式进行操作。(这是一个数组公式,在单元格中输入公式时应使用CTL+SHIFT+ENTER来激活函数。)
{=PERCENTILE(
如果(NUMBERVALUE(左($A$1:$A$18,4))=BegYear,
如果(NUMBERVALUE(右($A$1:$A$18,1))=BegMonth,
$C$1:$C$18))),1)}
是对包含上一年的单元格的引用EndYear
是对包含第一年的单元格的引用BegYear
是对包含上个月(或任何第二个单位)的单元格的引用EndMonth
是对包含第一个月(或任何第二个单位)的单元格的引用BegMonth
$A$1:$A$18
和$C$1:$C$18
,就可以包含您想要的任意多个测试用例
公式说明
LEFT()
四位数字作为字符串NUMBERVALUE()
然后将字符串转换为值。然后,您可以使用if语句从逻辑上评估测试日期是否属于所需的日期范围PERCENTILE()
将接受数组,忽略返回为FALSE的项,并提供所有四个if语句都为true的值范围的第k个百分位数RIGHT()
函数的第二个参数更改为2,或者执行类似于MID($A$1:$A$18,6,2)
的操作,或者最后一个数字可以替换为年参数后的任意多个字符
{=PERCENTILE(
IF(NUMBERVALUE(LEFT($A$1:$A$18,4))<=EndYear,
IF(NUMBERVALUE(LEFT($A$1:$A$18,4))>=BegYear,
IF(NUMBERVALUE(RIGHT($A$1:$A$18,1))<=EndMonth,
IF(NUMBERVALUE(RIGHT($A$1:$A$18,1))>=BegMonth,
$C$1:$C$18)))),1)}