2017-11-01 6 views
0

配列を使用せずに次のコードを書き直そうとしています(処理時間が現在非常に遅いため、このワークブックでは何もできません)。配列を使用せずに正確に一致しない複数の条件を持つINDEX MATCH

{=INDEX('Sheet1'!$F:$F,MATCH(1,('Sheet2'!$C5='Sheet1'!$C:$C)*('Sheet2'!$F5='Sheet1'!$E:$E)*('Sheet1'!$A:$A>='Sheet2'!$A5)*('Sheet1'!$A:$A<='Sheet2'!$B5),0))} 

Sheet1:A =開始日; C =名前; E =プロジェクト。 F =時間

Sheet2:A =開始日; B =終了日。 C =名前; F =プロジェクト

「開始日」を&「名前」&「プロジェクト」を連結すると考えましたが、2つのシート間の日付が必ずしも完全に一致するとは限りません - Sheet1の開始日と終了日通常、Sheet2の開始日と終了日に含まれますが、必ずしも同じ正確な範囲を含むわけではありません。

+0

1、配列数式について覚えておくだけで、データセットへの参照を制限し、完全な列参照を使用しないでくださいすることを使用しています。それだけで計算時間に大きな違いが生まれます。これは、数式ごとに数百万の計算を削減するためです。 –

答えて

0

時間は数字なので、SUMIFS()

=SUMIFS('Sheet1'!$F:$F,'Sheet1'!$C:$C,'Sheet2'!$C5,'Sheet1'!$E:$E,'Sheet2'!$F5,'Sheet1'!$A:$A,">=" & 'Sheet2'!$A5,'Sheet1'!$A:$A,"<=" &'Sheet2'!$B5) 
+0

私は本当にこれを考えすぎました。それがまさに私が必要としていたものです。ありがとう!! – user4100980

関連する問題