2017-09-29 17 views
0

私は、セルの値が日付の範囲内にあることを必要とするいくつかのコードを記述しようとしています。 これは私が(簡単にするために、いくつかの名前の変更が)これまでに書かれたものです:行のセルは、単語が含まれている場合は、「提出」、Countifsと範囲

=IF(COUNTIFS('[SheetA.xlsx]TabA'!A2:AA2, "submit", '[SheetA.xlsx]TabA'!B2:AB2, '[SheetA.xlsx]TabB'!**A9:A13**) >= 1, '[SheetA.xlsx]TabA'!C2, "") 

基本的には、それの右側のセルを持っています日付(特定の範囲の5日以内)、その行の3番目のセルを返す関数が必要です。

太字の範囲は日付の範囲です。

範囲を使用するとこの式は機能しませんが、1つの日付を入力すると期待値が返されます。私は何を変えるべきですか? COUNTIF()は、範囲が連続している場合、あなたはそのようにそれを回避することができ、範囲内の日付が見つからないためとして

答えて

0

COUNTIFS(A2:AA2, "submit", B2:AB2,">=" & LowestDate,B2:AB2,"<=" & HighestDate) 

あなたが範囲の範囲を比較していることがある問題したがって、全体の範囲は他のすべての範囲と一致する必要があります。範囲は同じ形状ではないので、常にfalseを返します。代わりに範囲を単一の値と比較すると、Excelは、単一の値が範囲内のどこに存在する場合でも、自動的に必要と判断します。

COUNTIFS()は「送信」と日付が見つかった場所を返さないため、外側のIFステートメントは第3のセルの場所を特定できません。

Match("submit",2:2,0)+2を使用すると、「submit」の相対列を見つけて2を追加し、ADDRESS()を使用して、その行に基づいて3番目のセルのアドレスを構築できます。最後に、INDIRECT()の内側に3番目のセルを返すようにします。以下のような何か:

=INDIRECT(ADDRESS(ROW(A2),MATCH("submit",2:2,0)+2,1,1)) 

あなたが最初の値にMATCH()発見を返している、これは複数の一致のために動作しないことに注意してください。

ROW()私はADDRESS()は、単純な行番号を使用する場合は、数式をドラッグして列をドラッグすると非常にうまくいっていない可能性があるため使用します。