• ベストアンサー

EXCEL 3つの条件に当てはまる値の参照について

シート1のデータがありまして、そのデータをシート2のフォーマットで表示したいとします。 シート2の稼動時間の欄をシート1の稼動時間から参照して持ってきたいと考えていますがうまくいきません。 シート2のセルC5には○○株式会社、A支店の1日の稼動時間を表示できるようにしたいです。 検索とかける対象がひとつであればできるのですが、この三つ(社名、支店、日付)の条件を満たしての参照のしかたがわかりませんでした。 どのような方法がございますでしょうか。教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 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セルに年と月を入力すると、各支店の日ごとの稼動時間が表示されます。

kumkum0926
質問者

お礼

目的を達成することができました。 ありがとうございます。 私が考えていたよりかなり複雑だったようです・・・ 関数の複数組み合わせに関してはまったくわからない状態なので これを元に応用できるよう勉強します。 本当にありがとうございました。

その他の回答 (1)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 回答番号:ANo.1です。  先程の回答で書き忘れていた事が御座いました。  Sheet2のB6セルコピーする前に、以下の操作を行って下さい。 Sheet2のB5~B6の範囲を選択   ↓ 選択範囲を示す黒い太枠の内側に、カーソルを合わせてマウスを右クリック   ↓ 現れた選択肢の中にある、[セルの書式設定]を選択してクリック   ↓ 現れた「セルの書式設定」ウィンドウの[表示形式]タグをクリック   ↓ [分類]欄の中にある、[ユーザー定義]を選択してクリック   ↓ 「セルの書式設定」ウィンドウの[種類]欄に d と入力する   ↓ 「セルの書式設定」ウィンドウの[OK]ボタンをクリックする

関連するQ&A

  • EXCEL 異なるシート間の参照

    EXCELに関しての質問です。 超初心者で基本がわからないままの質問ですみません。 同じブック内の複数のシート(様式は異なります)間の作業です。 片方のシートの日毎のデータを別のシートの日毎のセル に参照し、反映させたい。 INDIRECT関数を用いて、=INDIECT(A3&"!V3")のようにして A3に表示される文字列のシートのセル番地V3を参照し、 他のシートにそのデータを表示したいのですが、 うまくいきません。 A3セルには一ヶ月の日付が入っているので、 日付の入った他のシートを日付ごとに参照していくのですが、 そのシートの中のいつも同じセルV3しか 参照してくれないのです。 このV列のセルも自動的に日付に沿ったセル参照に変更するのは どうしたよろしいでしょうか。 よろしくお願いします。

  • Excel 3D参照の仕方

    串刺し参照ができずに困っています。 ブック内で日付ごとにシートを作成してあります。 ここで、各シートの同じ位置のセルを行単位で別のシートにコピーして、 日付別のデータ一覧を作りたいのです。 (例) 1日のデータ(B1:F1) 2日のデータ(B1:F1) 3日のデータ(B1:F1) . . . ’シート名’! とセルアドレスをくっつけた文字列を作って、その前に"=" を付けるだけ、あるいは Indirect や Index で読み込ませようとしましたがうまくいきません。

  • エクセルで参照させるとき

    ちょっと初心者的な質問ですみません。 エクセルデータをいじっているのですが たとえばセルにあるセルを参照させるとき =(ワークシート名)!B7と入力しますよね そのときに参照するセルに何も入力がないときは 「0」と表示されてしまいますよね このときにブランクに表示させる方法はないのでしょうか? 「0」表示だと資料として提出できないので困ってます。大量にあるのでいちいち消すのも大変です よろしくお願いいたします。

  • エクセル 日付の参照の方法

    エクセルで、スケジュール表を作っています。 セルA4の行から1月1日~となっていきます。 日付の部分が、セルの表示では「1月1日」と出ているのですが fxの欄には「=A1」と出ます。 以下、「1月2日」→「=A4+1」、「1月3日」→「=A5+1」・・・です。 ちなみにA1には「2008年」と表示されますが、ここもfxの欄は「2008/1/1」となっており、 ここの年数を変えると自動で1年分の日付・曜日が変わるようになっています。 ここまで他の人が作ったので、どうやってこういう設定にしたのか分かりません・・・。 この状態で、祝日に該当する日だけ、その祝日名が出るような列を作りたいんですが、 IF関数で日付を参照しようにも、「IF(A4="1月1日","元旦","")」にしても 「IF(A4="=A1","元旦","")」にしても、うまく「元旦」と出ません。 (エラーにはならないんですが・・・。) こういう、セルとfx欄で出力される文字が違うようなセルを参照するには、どうしたらよいですか? 教えて下さい。

  • エクセルで縦列と横列が交わるセルの値を変更したい

    エクセルで質問です。 縦列にコンピュータ名 横行に日付があり それぞれの交点のセルに それぞれのコンピュータに稼働時間が書いてあります。 それとは別にエラーリストがあり、コンピュータ名 と 日付が書い てある。 エラーリスト と 稼働時間 のシートを参照し エラーのあった日の 該当コンピュータの稼働時間 を 0 にしたい。 マクロ や vba で 一括処理したいが良い案はないでしょうか?

  • EXCEL マクロの定数にセルの値を参照できますか

    EXCELの複数グラフシートから、PPへグラフの貼り付けを行いたいです。貼り付け形式がグラフにより、xlBitmapとxlPictureを別ける必要があるので、EXCELにグラフシート名と貼り付け形式(xlBitmapとxlPicture)の一覧を作成し参照させたいのですが、うまくFormat形式をセルから参照させることができません。定数は参照できないのでしょうか? Selection.CopyPicture Format:=xlBitmapのxlBitmapの部分にセルの値を参照させたい。

  • エクセルでSheet1の表を参照して条件に合った値を返したい

    エクセルでSheet1に   A   B   C 1 1月1日 10時 10 2 1月1日 12時 25 3 1月1日 14時 17 4 1月2日 10時 15 5 1月2日 12時 23 6 1月2日 14時 19 ・ ・ ・ というような表があります。 Sheet2に   A   B   C  D  1 日付  10時 12時 14時  2 1月1日  3 1月2日  ・ ・ ・ の表があり、Sheet2のB2からD3にSheet1の表を参照して 条件に合うC列の値を返したいのです。 (例えばSheet2のB2には、1月1日の10時なのでSheet1C列の10が入る) VLOOKUP関数等を使って試してみましたがうまくいきません。 ご教授お願い致します。

  • エクセル 関数の値を参照したい

    ファイル1.xls のsheet1の セルE5に =cell("filename") を格納すると セルE5 にファイル1.xls と表示されます。 ファイル2.xls のあるセルに =[ファイル1.xls sheet1]E5 を入力すると ファイル2.xls と表示されてしまいますが 値を参照して ファイル1.xls と表示させたい場合はどうしたらよいでしょうか?

  • エクセルで2つの条件を満たす値を返す

    久々にエクセルを使用するのですが 色々調べもうお手上げなので助けてください。 会社コード 1   A    B    C    D    E 1 日付 前年売上   2  6.1  ??? 3 6.2  ??? 4 6.3  ??? 5 6.4  ??? このような表がsheet1にあるとします。 sheet2に6月1日から先何日か分の データを作ります 6.1   A          B      1  会社コード  前年度売上 2    1      123 3    2      456 4    3      465 5     . . . . こんな感じです。 sheet1の???の部分に6月1日会社コード1の 前年度売上を表示したいです。 そして、その後下の行へコピーしていきたいです。 sheet1,2はこのままの表記のしかたでいきたいです。 sheet2なら少し変えても大丈夫です。 会社コードが800ほどあるので 一日一日探して打っていくのは流石にむりです。 なにかいい方法はありませんか。 文章力に欠けますがお願いします。

  • EXCEL2003のセル参照、表示形式について

    EXCEL2003についてです。 1)日付を複数のシートに反映させたかったので、  他シートのセルを絶対参照させました。   (関数: =Sheet1!$A$1)   ⇒表示先セルの表示は【2008/04/01】となります。  2)日付の表示を【2008年4月1日】としたいため、対象セルで 「右クリック」⇒「セルの書式設定」⇒「表示形式タブ」⇒「分類」を 選択し、“日付”に変更したところ、「サンプル」で何も 反応しませんでした。また、対象セルにも反映はされません。 3)表示先セルを“標準”に戻し、参照先セルを「日付」にしたとこ ろ、反映はされたので、ファイルを保存しようとしたとこ、 今度は「ファイルを保存できませんでした」とのメッセージがでてしまします。 上記を改善というか、反映させるには設定等が必要なのでしょうか?