|
本帖最后由 liweng12 于 2015-4-21 15:58 编辑
文章作者为*雪上霜*,转载请注明
1、首先需要一张所有单元素异常特征参数表
2、一张包含综合异常面积、综合异常内单元素异常编号的表
3、 利用index、match函数为所有参加综合异常评序的单元素异常附上综合异常编号,如图所示
4、综合异常评序一般用到5指标,即元素种类、面积、平均衬度、平均规模值、总规模值。
(1) 元素种类={SUM(IF(综合异常表达式!A$2:A$468=B3,1/COUNTIFS(综合异常表达式!$A$2A$468,综合异常表达式!$A$2:$A$468,综合异常表达式!$C$2:$C$468,综合异常表达式!$D$2:$D$468)))}
可以看出,上述公式为数组公式,综合异常表达式!A$2:A$468为包括综合异常编号的数据列,综合异常表达式!$D$2:$D$468为元素数据的列,countifs()函数目的是检测当前综合异常编号下某一元素异常的数量,利用1/countif()结合sum()可以使每个元素种类统计数为1,相加即为综合异常下的元素种类。
简单做法可以做一个包含综合异常编号和元素种类的辅助表,选中两列作为关键字剔除重复值,即可用=countif( 辅助表!a:a,a)的方法返回元素种类。
(2) 面积=INDEX(综合异常面积!A:A,MATCH(B3,综合异常面积!B:B,0)),该函数比较简单,为index和match的混用。
(3) 平均衬度值=SQRT(SUMSQ(OFFSET(综合异常内单元素异常!$I$2,MATCH(B3,综合异常内单元素异常!A:A,0)-2,,COUNTIF(综合异常内单元素异常!A:A,B3),))/COUNTIF(综合异常内单元素异常!A:A,B3))
该公式为SQRT、SUMSQ、MATCH的镶嵌运用,与平均衬度值计算公式相同,OFFSET作用为返回该综合异常下衬度值数据。其中综合异常内单元素异常!$I$2代表衬度值第一个数据单元格(如上图的I2),综合异常内单元素异常!A:A为综合异常编号,B3为当前综合异常的编号。
(4)平均规模值= SQRT(SUMSQ(OFFSET(综合异常内单元素异常!$J$2,MATCH(B3,综合异常内单元素异常!A:A,0)-2,,COUNTIF(综合异常内单元素异常!A:A,B3),))/COUNTIF(综合异常内单元素异常!A:A,B3))
该公式与 上一个公式几乎一致,仅为I2替换为J2
(5)总规模值=SUMIFS(综合异常内单元素异常!J:J,综合异常内单元素异常!A:A,B3)
该公式较为简单,为sumifs的运用,意为合计所有为该综合异常编号的单元素异常规模。
(6)排序公式 =COUNTIF(C:C,">"&C3)+1
作者代码编写水平有限,此文仅为抛砖引玉,欢迎大家相互交流
|
|
|