- ベストアンサー
EXCEL 3つの条件に当てはまる値の参照について
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sheet2のフォーマットを僅かに変えてしまう事になりますが、Sheet2でも年と月を指定しておく必要があります。(そうしないと、例えばSheet2の日付が1の欄に、前年の12月1日等の様に、日数は同じで、年や月が異なる日のデータも合計されてしまいます) ですから、まず、Sheet2のA1セルに 2011年1月 という形式で、年と月を合わせて入力して下さい。 次に、Sheet2の B4セルに 日付 C4セルに 稼働時間 と入力して下さい。 次に、Sheet2のB5セルに次の数式を入力して下さい。 =IF(ISNUMBER($A$1),$A$1,"") 次に、Sheet2のB6セルに次の数式を入力して下さい。 =IF(ISNUMBER(B$5),IF(MONTH(MAX(B$5:B5)+1)=MONTH(B$5),B$5+1,""),"") 次に、Sheet2のC5セルに次の数式を入力して下さい。 =IF(OR(B$2="",C$3="",$B5="",$B5>MAX(Sheet1!$A:$A)),"",SUMPRODUCT((OFFSET(Sheet1!$A$1,1,,MATCH(9^9,Sheet1!$A:$A)-1)=$B5)*(OFFSET(Sheet1!$B$1,1,,MATCH(9^9,Sheet1!$A:$A)-1)=B$2)*(OFFSET(Sheet1!$C$1,1,,MATCH(9^9,Sheet1!$A:$A)-1)=C$3)*OFFSET(Sheet1!$D$1,1,,MATCH(9^9,Sheet1!$A:$A)-1))) 次に、Sheet2のC5セルをコピーして、Sheet2のC6セルに貼り付けて下さい。 次に、Sheet2のB6~C6の範囲をコピーして、B7~C35の範囲に貼り付けて下さい。 次に、Sheet2のB4~D35の範囲をコピーして、右方向に向かって必要な回数だけ貼り付けて下さい。 以上で準備は完了で、後はSheet2において「日付」と表示されているセルの2つ上のセルに各会社名を、「稼働時間」と入力されているセルの直ぐ上のセルに各営業所名を、それぞれ入力し、Sheet2のA1セルに年と月を入力すると、各支店の日ごとの稼動時間が表示されます。
その他の回答 (1)
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答番号:ANo.1です。 先程の回答で書き忘れていた事が御座いました。 Sheet2のB6セルコピーする前に、以下の操作を行って下さい。 Sheet2のB5~B6の範囲を選択 ↓ 選択範囲を示す黒い太枠の内側に、カーソルを合わせてマウスを右クリック ↓ 現れた選択肢の中にある、[セルの書式設定]を選択してクリック ↓ 現れた「セルの書式設定」ウィンドウの[表示形式]タグをクリック ↓ [分類]欄の中にある、[ユーザー定義]を選択してクリック ↓ 「セルの書式設定」ウィンドウの[種類]欄に d と入力する ↓ 「セルの書式設定」ウィンドウの[OK]ボタンをクリックする
お礼
目的を達成することができました。 ありがとうございます。 私が考えていたよりかなり複雑だったようです・・・ 関数の複数組み合わせに関してはまったくわからない状態なので これを元に応用できるよう勉強します。 本当にありがとうございました。