发布时间:2017-03-21 作者:admin 点击量:
有网友按照上一篇文章:Excel-多前提的查询(INDEX+MATCH+阵列) weiisvincent.blogspot.af/2012/01/excel-indexmatch.html
问到若是要查询的资料不止一笔时,公式该若何写?参考下图,要由外形和尺寸这两个前提来找合适的零件编号及其售价。
【準备工作】
1. 拔取贮存格A1:D19,按一下 Ctrl+Shift+F3 键,成立名称:零件编号、外形、尺寸。
2. 拔取贮存格A2:D19,成立名称:资料。
【公式申明】
贮存格F4:{=IFERROR(INDEX(资料,SMALL(IF((外形=$G$1)*(尺寸=$G$2),ROW($1:$18)),ROW(1:1)),1),"")}
这是阵列公式,输入完成要按 Ctrl+Shift+Enter 键。
(外形=$G$1)*(尺寸=$G$2):公式中的「*」乃将二个前提做 AND 运算,前提完全成立时会传回 True ,反之传回 False。
IF((外形=$G$1)*(尺寸=$G$2),ROW($2:$19)):由于资料共有 18 笔,所以将上式合乎前提者,传回对应的列号(1~18)。
SMALL(IF((外形=$G$1)*(尺寸=$G$2),ROW($1:$18)),ROW(1:1)),1):由于ROW(1:1)=1,所以可以掏出合于前提者的最小的列号,当往下複製时发生ROW(2:2)=2,会掏出合于前提者的第 2 小的列号,以此类推。
透过 INDEX 函数,将此式求得的列号来查询第 1 栏中的资料。因为往下複製公式时,可能由于找不到资料而传回毛病值,所以操纵 IFERROR 函数,将毛病讯息转换为空字串。
同理,
贮存格G4:{=IFERROR(INDEX(资料,SMALL(IF((外形=$G$1)*(尺寸=$G$2),ROW($1:$18)),ROW(1:1)),4),"")}
透过 INDEX 函数,将此式成果来查询第 4 栏的成果。
複製贮存格F4:G4,往下各列贴上。
【弥补资料】
关于具体函数申明,请参考微软网站:
INDEX:weioffice.microsoft.af/zh-tuozhan/excel-help/HP010342608.aspx
INDEX:传回表格或範围内的某个值或值的参照。 | 语法:INDEX(array, row_num, [column_num]) Array:贮存格範围或阵列常数。 Row_num:拔取阵列中传回值的列。 Column_num:拔取阵列中传回值的栏。 |
IFERROR:weioffice.microsoft.af/zh-tuozhan/excel-help/HA010342587.aspx
IFERROR:若是公式计较毛病,会传回指定的值;不然,会传回公式的成果。 | 语法:IFERROR(value, value_if_error) value:查抄此引数是不是有毛病。 value_if_error:公式计较毛病时要传回的值。 利用 IFERROR 函数,可以捕获并处置公式中的毛病。会评估以下毛病类型:#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? 或 #NULL!。 |
创作者先容 vincent
联系我们
contact us地址:北京市西红门理想商业街3号楼6层
电话:4000-288-501
点击图标在线留言,我们会及时回复