
Excelに2つのシートがあります。
1 つのフィールドには日付フィールドがあります。
例えばA-1 Date1
2 番目のシートには ID 付きの日付範囲があります。
A-1 開始日 A2- 終了日 A3- 日付範囲 ID
最初のシートに、 Date1 の範囲 ID を含む新しいフィールドを作成する必要があります。
たとえば、2番目のシートの範囲はA1-2017年5月1日、A2-2017年5月30日、A3-7です。
最初のシート A1 - 2017 年 5 月 3 日。したがって、最初のシートに値 7 を持つ新しい列を作成します。
Excelではどうすればよいですか?
答え1
@Ron Rosenfeld が既に述べているように、Sheet2 の範囲に Sheet1 のすべての日付が含まれており、重複がない場合、単純な VLOOKUP が機能するはずです。ただし、Sheet2 の日付範囲が必ずしも昇順ではなく、間にギャップがあり、重複している可能性がある場合は、このソリューションを試してください。制限は、Sheet1 のデータが範囲内にあると判明した日付範囲の最初の範囲 ID を返す必要があることです。
この例では、Sheet1 の列 A1:A10 に日付があります。Sheet2 には、開始日が A1:A7、終了日が B1:B7、範囲 ID が C1:C7 にあります。
Sheet1 セル B1 に次の配列数式を入力します。
=IF(ISERROR(INDEX(Sheet2!$C$1:$C$7,MATCH(1,IF(A1>=Sheet2!$A$1:$A$7,IF(A1<=Sheet2!$B$1:$B$7,1,0)),0))),"Not Found",INDEX(Sheet2!$C$1:$C$7,MATCH(1,IF(A1>=Sheet2!$A$1:$A$7,IF(A1<=Sheet2!$B$1:$B$7,1,0)),0)))
その後、CTRL+SHIFT+ENTER キーを押して配列数式にします。これで、アドレス バーに中括弧で囲まれた数式が表示されます。次に、それを目的の行までドラッグします。これで、列 B は、列 A の日付が範囲内にある Sheet2 からそれぞれの範囲 ID を取得します。
この数式は、ネストされた IF をチェックして、一致する範囲に基づいて TRUE、FALSE の配列を返すことに基づいており、外側の INDEX-MATCH を使用して一致する最初の位置 1 を取得し、範囲 ID 列からその位置の値を返します。