element 发表于 2007-6-22 17:38

数组小组练习题--011

<p>谢谢各位的关心。</p><p>来个查询题:</p><p>找出2列(班级,姓名)匹配后的,此人的“体重”?</p><p>PS, 没有看过前面的题,不知是否出重复了</p><p>再PS, 我没有答案</p><p>&nbsp;</p><br/>

jssy 发表于 2007-6-22 23:26

不知大家有没有考虑过:如果数据量很大,如10000行以上,哪种公式的计算速度更快些?

Luckyguy2008 发表于 2007-6-22 18:07

=MAX((A2:A15=G4)*(B2:B15=H4)*C2:C15)<br/>=SUM((A2:A15=G4)*(B2:B15=H4)*C2:C15)<br/><br/>下班了,先贴俩。回头再想好答案。<br/>

xhsdham 发表于 2007-6-22 18:11

<p>=SUM((A2:A15=G4)*(B2:B15=H4)*(C2:C15))</p><p>太那个点了</p>

封州大少 发表于 2007-6-22 18:13

<p>这题解法太多,用不常用的数据库函数做一个,其它答案大家来做吧</p><p>=DMIN(A1:C15,3,G3:H4)</p><p>DMAX、DSUM也行</p><p>不是数组,是不是离题了,呵呵</p>
[此贴子已经被作者于2007-6-22 18:14:46编辑过]

xhsdham 发表于 2007-6-22 18:18

=VLOOKUP(G4&amp;H4,CHOOSE({1,2},A2:A15&amp;B2:B15,C2:C15),2,FALSE)
[此贴子已经被作者于2007-6-22 18:36:05编辑过]

laoyebin 发表于 2007-6-22 20:00

<p>=LOOKUP(2,1/((A2:A15=G4)*(B2:B15=H4)),C2:C15)</p><p>=MMULT(TRANSPOSE((A2:A15=G4)*(B2:B15=H4)),C2:C15)</p>

jssy 发表于 2007-6-22 23:00

<p>1、最传统的多条件求和公式:=SUMPRODUCT((A2:A15=G4)*(B2:B15=H4),C2:C15)</p><p>2、传统的查找公式:=INDEX(C2:C15,MATCH(G4&amp;H4,A2:A15&amp;B2:B15,0))</p><p>3、vlookup也可能写成:=VLOOKUP(G4&amp;H4,IF({1,0},A2:A15&amp;B2:B15,C2:C15),2,0)</p><p></p><p>4、还可能这样找:=OFFSET(C1,MAX((A2:A15&amp;B2:B15=G4&amp;H4)*ROW(C2:C15))-1,)</p><p>         =OFFSET(C1,MATCH(G4&amp;H4,A2:A15&amp;B2:B15,0),)</p><p>&nbsp;&nbsp;&nbsp;&nbsp; 方法还有很多,总之一类是条件求和,一类是条件查找。</p>
[此贴子已经被作者于2007-6-22 23:21:12编辑过]

封州大少 发表于 2007-6-23 12:27

<p>把这个DGET忘了</p><p>=DGET(A1:C15,3,G3:H4)</p>

gvntw 发表于 2007-6-23 14:25

用数据库函数比较好,这题我喜欢用DGET。
页: [1] 2
查看完整版本: 数组小组练习题--011