如何根据条件获取特定行的百分比排名?
How to take percentage rank of specific rows on conditional?
我想将一些数据转换为百分比排名,但是我该怎么做才能在另一列的值在同一行中时仅采用行的百分比排名?
我的数据:
821073 4086 woodland
1367182 8483 woodland
774315 3908 greenspace
3155757 9229 greenspace
2298996 9195 greenspace
1133531 5386 greenspace
1839304 6111 woodland
642198 3109 artificial_forest
642198 3109 artificial_forest
9727658 26260 artificial_forest
517463 2776 artificial_forest
3082246 8345 forest
1043860 6873 forest
1851161 5790 forest
762000 3633 greenarea
1575599 5980 greenarea
534234 2795 greenarea
1783711 5446 greenarea
在这个例子中,我想计算 Area
和 Perimtr
对于 Artificial_forest
和 green_area
的平均百分比排名,我已经尝试过:
=AVERAGE(PERCENTRANK.INC($F:$F, $F:$F,F8, F15))
我最终得到 woodland, greenspace, forest
的重复值,我怎样才能得到它,以便它只采用 artificial_forest
和 greenarea
的平均百分比排名,其中 [=29] =] NA
或 0
其他地方?
修订后的决议
截图/here参考:
鉴于 Office 365 可用(根据@Stackbeans 的评论,t-19hrs),将 percentranks 合并到一个数组中的一种更简洁的方法如下(屏幕截图,请参阅此处):
=SORT(IFERROR(PERCENTRANK.INC(FILTER(B4:C21,$D:$D=$G),FILTER(B4:C21,$D:$D=$G)),""),,1)
无需重现此 'array/spill-type' 等式即可直接确定平均值,如下所示:
面积
=AVERAGE(INDEX(SORT(IFERROR(PERCENTRANK.INC(FILTER(B4:C21,$D:$D=$G),FILTER(B4:C21,$D:$D=$G)),""),,1),0,1))
周长
=AVERAGE(INDEX(SORT(IFERROR(PERCENTRANK.INC(FILTER(B4:C21,$D:$D=$G),FILTER(B4:C21,$D:$D=$G)),""),,1),0,2))
OR 如果要在 excel 内复制和显示数组,那么这会稍微简化平均值的公式:
=AVERAGE(INDEX(R3#,0,2))
(面积使用average(index(r3#,0,1))
)
奖金
要包括验证列表下拉列表(参考下面的屏幕截图)
- 创建查找列表,例如
=UNIQUE(D4:D21)
在单元格 N3 中
- Select 主功能区中的名称管理器,公式部分:
- 在弹出的 GUI 中,select 'new',输入名称(此处为 'Name_Lookup')和参考方程式(此处为
= $N#
),并注明final # 这使得它成为适用于 'spill-type' ranges/arrays... 的动态范围
- 点击 'Close' 到 return 到第一个 window 弹出窗口,然后通过单击 [=153= 上的向上小箭头检查结果命名范围的范围] 图形界面中方程栏附近:
创建一个验证列表:单元格 G5:键入 alt + d + L(按顺序,在按下一个按钮之前松开一个按钮)。有关验证列表的更多信息,请参阅 here...
第一个window弹出的GUI,select从下拉菜单中列出并输入相应的参考公式:= Name_Lookup
,如:
- 突出显示不同颜色的单元格(不是必需的,但 sheet 对其他人更友好)...
原始解决方案
截图/here参考
我单独考虑 'area' - 这可以很容易地以相同的方式扩展到 perimtr。
到return过滤结果的每个级别percentrank对应的值数组,使用:
=SORT(IFERROR(PERCENTRANK.INC(IF($D:$D=$G,B4:B21,""),IF($D:$D=$G,B4:B21,"")),""),,1)
要计算此数组中值的平均值 percentrank,请使用:
=AVERAGE(IFERROR(PERCENTRANK.INC(IF($D:$D=$G,B4:B21,""),IF($D:$D=$G,B4:B21,"")),""))
备注
- 查找功能需要 Excel 的 Office 365 兼容版本。不是基本功能(未被要求)所以假设如果无法访问上述 Excel 版本可以忽略此功能...
- 要检索数组中的单个值,请使用
=INDEX(SORT(IFERROR(PERCENTRANK.INC(IF($D:$D=$G,B4:B21,""),IF($D:$D=$G,B4:B21,"")),""),,1),I1)
,其中最后一个组件 (I1 = 1,2,..) 表示所述索引的(有序)排名..
我想将一些数据转换为百分比排名,但是我该怎么做才能在另一列的值在同一行中时仅采用行的百分比排名?
我的数据:
821073 4086 woodland
1367182 8483 woodland
774315 3908 greenspace
3155757 9229 greenspace
2298996 9195 greenspace
1133531 5386 greenspace
1839304 6111 woodland
642198 3109 artificial_forest
642198 3109 artificial_forest
9727658 26260 artificial_forest
517463 2776 artificial_forest
3082246 8345 forest
1043860 6873 forest
1851161 5790 forest
762000 3633 greenarea
1575599 5980 greenarea
534234 2795 greenarea
1783711 5446 greenarea
在这个例子中,我想计算 Area
和 Perimtr
对于 Artificial_forest
和 green_area
的平均百分比排名,我已经尝试过:
=AVERAGE(PERCENTRANK.INC($F:$F, $F:$F,F8, F15))
我最终得到 woodland, greenspace, forest
的重复值,我怎样才能得到它,以便它只采用 artificial_forest
和 greenarea
的平均百分比排名,其中 [=29] =] NA
或 0
其他地方?
修订后的决议
截图/here参考:
鉴于 Office 365 可用(根据@Stackbeans 的评论,t-19hrs),将 percentranks 合并到一个数组中的一种更简洁的方法如下(屏幕截图,请参阅此处):
=SORT(IFERROR(PERCENTRANK.INC(FILTER(B4:C21,$D:$D=$G),FILTER(B4:C21,$D:$D=$G)),""),,1)
无需重现此 'array/spill-type' 等式即可直接确定平均值,如下所示:
面积
=AVERAGE(INDEX(SORT(IFERROR(PERCENTRANK.INC(FILTER(B4:C21,$D:$D=$G),FILTER(B4:C21,$D:$D=$G)),""),,1),0,1))
周长
=AVERAGE(INDEX(SORT(IFERROR(PERCENTRANK.INC(FILTER(B4:C21,$D:$D=$G),FILTER(B4:C21,$D:$D=$G)),""),,1),0,2))
OR 如果要在 excel 内复制和显示数组,那么这会稍微简化平均值的公式:
=AVERAGE(INDEX(R3#,0,2))
(面积使用average(index(r3#,0,1))
)
奖金
要包括验证列表下拉列表(参考下面的屏幕截图)
- 创建查找列表,例如
=UNIQUE(D4:D21)
在单元格 N3 中 - Select 主功能区中的名称管理器,公式部分:
- 在弹出的 GUI 中,select 'new',输入名称(此处为 'Name_Lookup')和参考方程式(此处为
= $N#
),并注明final # 这使得它成为适用于 'spill-type' ranges/arrays... 的动态范围
- 点击 'Close' 到 return 到第一个 window 弹出窗口,然后通过单击 [=153= 上的向上小箭头检查结果命名范围的范围] 图形界面中方程栏附近:
创建一个验证列表:单元格 G5:键入 alt + d + L(按顺序,在按下一个按钮之前松开一个按钮)。有关验证列表的更多信息,请参阅 here...
第一个window弹出的GUI,select从下拉菜单中列出并输入相应的参考公式:
= Name_Lookup
,如:
- 突出显示不同颜色的单元格(不是必需的,但 sheet 对其他人更友好)...
原始解决方案
截图/here参考
我单独考虑 'area' - 这可以很容易地以相同的方式扩展到 perimtr。
到return过滤结果的每个级别percentrank对应的值数组,使用:
=SORT(IFERROR(PERCENTRANK.INC(IF($D:$D=$G,B4:B21,""),IF($D:$D=$G,B4:B21,"")),""),,1)
要计算此数组中值的平均值 percentrank,请使用:
=AVERAGE(IFERROR(PERCENTRANK.INC(IF($D:$D=$G,B4:B21,""),IF($D:$D=$G,B4:B21,"")),""))
备注
- 查找功能需要 Excel 的 Office 365 兼容版本。不是基本功能(未被要求)所以假设如果无法访问上述 Excel 版本可以忽略此功能...
- 要检索数组中的单个值,请使用
=INDEX(SORT(IFERROR(PERCENTRANK.INC(IF($D:$D=$G,B4:B21,""),IF($D:$D=$G,B4:B21,"")),""),,1),I1)
,其中最后一个组件 (I1 = 1,2,..) 表示所述索引的(有序)排名..