• 締切済み

excelでの集計結果の表示について

excelで一覧を作成し、一番右横に集計結果を表示できるようにしております。 一覧の内容は、縦に店舗名、横に各作業名で、表には各作業が「順調」「遅延」「完了」かを記載しております。 一番右横の集計結果には各作業が「順調」「遅延」「完了」がそれぞれ何件あるかをカウントしております。    店舗A    店舗B    店舗C     順調  遅延  完了     |ステータス ステータス ステータス ___________________________________ 作業1|順調    遅延     遅延    | 1    2   0 _______________________________________________________ 作業2|順調  順調  遅延  | 2    1   0 _________________________________________ 作業3|順調  順調  完了  | 2    0   1 _______________________________________________________ 「順調」「遅延」「完了」のカウントは以下のように取っております。 =COUNTIFS($AB$4:$HW$4,"ステータス",AB28:HW28,"順調") それぞれの集計結果数値をクリックするなり、ポインタを持っていくなりしたら、 順調なり遅延なりの対象店舗名を表示するようにしたいのです。 例:作業1の集計結果の遅延2の箇所をクリックしたら、店舗B、Cと表示される。 どうしたらよいでしょうか?

みんなの回答

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

 VBAのイベントプロシージャを使った以下の様な方法は如何でしょうか。  質問者様の御質問文には、どの情報がどのセル番号のセルに入力されているのかという事が説明されており線ので、仮の話として、下記の様なレイアウトとなっているものと仮定して話を進める事に致します。 ・「作業1」等の各種の作業名が入力されているセル範囲の中で、一番上のセルがある行が28行目 ・「店舗A」等の各種の店舗名が入力されているセル範囲の中で、一番左にあるセルがAB3セル ・「ステータス」と入力されているセル範囲の中で、一番左にあるセルがAB4セル ・表の右上の方にある「順調」、「遅延」、「完了」と入力されているセルは、HX3セル、HY3セル、HZ3セル  上記の仮定が正しいものとした場合、次の様な操作を行って、そのシート上の特定のセル範囲内にあるセルに対して、カウントされた数が表示されているセルをダブルクリックすると、該当する店舗名が表示される様にするためのイベントプロシージャを設定されると良いと思います。  まず、Excelウインドウの[開発]タブをクリックして下さい。  次に、「コード」グループの中にある[Visual Basic]ボタンをクリックして下さい。  すると「Microsoft Visual Basic for Applications 」ウィンドウが開きますので、その中の左の方にある「プロジェクト-VBAProject」という囲みの中に並んでいるシート名の中から、御質問にある一覧表が存在するシートの名前を選択してダブルクリックして下さい。(本件の場合はVBAを設定するのは、標準モジュールの中にではなく、ワークシートの方にですので、間違えない様にして下さい)  次に、「Microsoft Visual Basic for Applications 」ウィンドウの右側の大きな囲みの上にある2個の表示欄の内、左側の方に「Worksheet」と表示されている事を確認して下さい。  次に、「Microsoft Visual Basic for Applications 」ウィンドウの右側の大きな囲みの中に、以下の様なVBAの構文を入力して下さい。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim ClickRowF, CountSubR, StatusRangeR, ShopRangeR As Long Dim myMsg As Integer Dim CountRange, RangI As Range Dim ClickColumnF, ClickColumnL, CountRangeFC, CountRangeLC, ShopRangeFC, _ Results As String Dim CountSub As Variant 'ダブルクリックするセルが存在している列範囲の内の最初の列 ClickColumnF = "HX" 'ダブルクリックするセルが存在している列範囲の内の最後の列 ClickColumnL = "HZ" 'ダブルクリックするセルが存在している最初の行 ClickRowF = 28 '「順調」、「遅延」、「完了」等の検索すべき文字列が入力されている行(ダブルクリックするセルの真上) CountSubR = 3 If Target.Column >= Columns(ClickColumnF).Column And Target.Column <= Columns(ClickColumnL).Column _ And Target.Row >= ClickRowF And IsNumeric(Target.Value) And Target.Value >= 0 Then If Target.Value >= 1 And Int(Target.Value) = Target.Value And Cells(CountSubR, Target.Column).Value <> "" Then '「ステータス」と入力されているセルが存在している列範囲の内の最初の列 CountRangeFC = "AB" '「ステータス」と入力されているセルが存在している列範囲の内の最後の列 CountRangeLC = "HW" '「ステータス」と入力されている行 StatusRangeR = 4 '店名が入力されている列範囲の内の最初の列 ShopRangeFC = "AB" '店名が入力されている行 ShopRangeR = 3 Set CountRange = Range(CountRangeFC & Target.Row & ":" & CountRangeLC & Target.Row) CountSub = Cells(CountSubR, Target.Column).Value Results = "ステータスが「" & CountSub & "」となっている店舗には" _ & Chr(13) & "以下のものがあります。" & Chr(13) For Each RangI In CountRange If RangI.Value = CountSub And Cells(StatusRangeR, RangI.Column).Value = "ステータス" Then Results = Results & Chr(13) & Cells(ShopRangeR, RangI.Column + _ Columns(ShopRangeFC).Column - Columns(CountRangeFC).Column).Value End If Next RangI myMsg = MsgBox(Results, vbOKOnly + vbInformation, "該当店舗") End If End If SendKeys "{ESC}" End Sub  以上で準備は完了で、後はHX列~HZ列の28行目以下にある、カウント結果が表示されているセルをダブルクリックしますと、該当する店舗が表示されたBoxが現れます。(但し、カウント結果が0になっているセルをダブルクリックした場合に関しては、表示すべき店舗名が存在しませんので、Boxは現れません) 【参考URL】  エクセルExcel大事典 VBAマクロ イベントプロシージャ Open Target Cancel EnableEvents Volatile   http://home.att.ne.jp/zeta/gen/excel/c04p59.htm

全文を見る
すると、全ての回答が全文表示されます。
noname#206655
noname#206655
回答No.2

if(完了、完了処理、if(順調、順調処理、遅延処理)) で判断するとして、セルをどうしよう。 セルに答えを一時的に入れ、表示も印刷も対象外にできるので、それを一時的な変数にする手法があります。さらに 順調 が 順著 など文字違いがあるといけないので、フォーム化します。 結果、自動化は表計算では無理。って結論になります。

全文を見る
すると、全ての回答が全文表示されます。
  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

難しいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル2003でcountifsと同等の効果

    エクセルを使用して、スキャニングしたデータの用紙サイズの集計を したいと思っています。 添付画像の様に、左側にサイズ一覧の表を作り、右側に作った表で 集計結果を表示したいと思っています。 画像ではCOUNTIFSを使用し、A列とE3が合致した範囲のC列からF2を カウントする条件としてF3に、その数を表示させるという方法をとっていますが 実際に作業を行うPCにはエクセル2003しか入っていません。 これと同様の効果を2003で行うことは可能でしょうか? よろしくお願いします。

  • access 集計クエリの並び順。

    宜しくお願いします。 仕様環境:WinXP access2002 デジタルライフ>officeソフトで出した質問ですが、 良いのかどうかわかりませんが、少し内容を変えてこちらで伺います。 ツールを作っているのですが、 集計クエリを使って各項目の集計を取ろうとしています。 使っている集計の条件は「カウント」です。 まず、元のフォームに”ステータス”というコンボボックスを置いて、 その中に「値リスト」と値集合ソースは、 「見積中、返答待ち、確定、作業中、作業完了、入金待ち、NG」となっています。 コンボボックス内はそのような”順番”で表示されるのですが、 集計クエリを元にした集計フォームでは順番どおりに表示されません。 (カウントはされています。) 昇順や降順という話しでもなく、”見積中”の次に”作業完了”がきたり、 また試したところ”NG”は一番最初に表示されます。 これはなぜでしょうか? また改善の余地はあるのでしょうか? ちなみに(いろいろテーブルとか変えて)クロス集計クエリを使うと 項目の並び順は揃えられるのですが、0件のところは「#name」とエラーが 出てしまいます。 (そもそもその項目が存在していないからといったところでしょうが) よろしければ、ご指導お願いします。

  • EXCELでの複数項目集計

    EXCELで複数項目での集計方法を教えてください。 品番/品名/数量 01/AB/20 01/AB/30 02/CD/40 02/CD/20 このようなデータで、数量を集計したいのですが、 品番で集計すると集計結果に「品番 集計」と表示されて 品名で集計すると「品名 集計」となります。 集計結果のみを表示させるので「品番/品名 集計」と いうように表示させたいのですができるのでしょうか? ちなみに品番と品名は必ずペアです。 宜しくお願いします。

  • access 存在しない項目を”0件”と表示させるには?

    宜しくお願いします。 仕様環境:WinXP access2002 acecssで集計クエリを作り、それが反映されるフォームを作っています。 集計方法は「カウント」です。 テーブルは重要なところだけいいますと、 ステータステーブル・・・IDとステータス(「見積中、返答待ち、確定、作業中、作業完了、入金待ち、終了、NG」)。 案件テーブル・・いろんな項目がありますが、「ステータス」という項目があり、別途のフォームで そこをコンボボックスにしてステータステーブルの情報を引っ張ってきています。 そこでなのですが、「集計フォーム」の画像を見ての通り、 実際、まだ案件テーブルで選択されていない項目については表示されません。 例えば:確定、作業中、作業完了など。 これを「確定0件、作業中0件、作業完了0件」と出したいのです。 集計クエリには実際まだ存在していないので、表示されないのはわかりまして、 それがフォームにも反映しているのもわかります。 そこでnz関数を使って、例えば 「確定:nz([ステータス],"0")」や「確定:nz[確定],"0"」ではクエリに表示されません、 (いろいろ試したのでエラーが出たときもあります) よく考えてみると存在していないものは、nz関数ではダメなのかなと思っています。 (nz関数は存在しているnull値を違う値に変えるものと認識しています) クロス集計クエリも試しましたが、存在していないところは「#name」とエラーになり、 nz関数を同様に使ってみたのですがダメでした。 どうすれば存在していないものに対して”0件”という表示がだせるのでしょうか? そもそもの構造がおかしいのでしょうか? クエリは普通の集計クエリでもクロス~でもカウントを使うので”0”が”1つ”として 数えられてしまうと本末転倒です。 なるべく基盤の構造はシンプルに作りたいので集計クエリを望んでいます。 改善点があれば、ご教示お願いします。 余談ですが、こういうaccessの個別レッスンとかやっている教室があったら 教えて頂けば幸いです。(東京・ちなみにアビバは資格向けのようです)

  • テキストボックスに、クエリの集計カウント数を表示

    Access2019 クエリの商品毎の集計カウントをテキストボックスに、表示させよう取り組んでいますが表示出来る迄至っていません。 クエリ名:3_商品_全集計カウント クエリのフィールド:商品名 , 商品名のカウント 例> りんご 20 みかん 100 りんごのカウント数が表示するテキストボックスに、20が表示する様にしたいです。 テキストボックスは、それぞれ商品毎のテキストボックスをフォームに設けて、テキストボックスのコントロールソースに以下の関数を組んで結果は #Name? です。 DLookup("商品名のカウント", "3_商品_全集計カウント", "商品名 = '" & りんご & "'") ご教授頂けたら幸いです。 以上、宜しくお願い致します。

  • Excelでマクロを使って集計したい

    いい方法がわからず困っています。 Excel2000を使って報告書の集計をしたいのですが・・・。 支店が100店舗あり、毎日Excelファイルの報告書を送ってもらっています。フォーマットは全店共通です。 報告書のファイル名には各支店名が入っています。 ファイルの中は、顧客名や誕生日、商品コード、商品名などのリストになっています。 (件数は毎日変動、1日1店舗平均50件位、0件の場合もあり) 今現在、ひとつずつファイルを開いて、入力されている範囲をコピーして、全店集計用の別のファイルに貼り付けて、毎日の全店分のリストを1つのシートにまとめています。 この作業をマクロを使って、ボタンを押すと自動的に全店集計用ファイルにデータが貼り付けられる方法はないでしょうか。 そして、集計が完了すると、別のマクロのボタンを押すことで、各店(100店舗)の報告書のデータをクリアさせたいのです。 お知恵を貸してください。宜しくお願いします。

  • Excelで、出勤人数の集計方法は?

     現在、私の手元に工場の作業日報のデーターベースがあります。  いつ、誰が、どんな作業を、何時から、何時まで行っていたかというデーターが約半年分、行数にして1万5千行ほどあります。    このデーターベースから、日付毎の出勤人数を集計したいのですが、集計やピポットテーブルを使用しても上手く往きません。  A列に日付、B列に作業者名、C列以降に作業名や時間が入力されているのですが、一人が一日に複数の作業を行った場合、同じ日付に同じ作業者名が幾つもダブって入力されています。  集計やピポットテーブルを使用しても、例えば同じ日付に同じ作業者名が3回登場すると、1とカウントせず、3とカウントしてしまいます。  このように、データーの個数を集計するのではなく、データーが何種類有るかを集計する方法は無いのでしょうか。詳しい方、どうかご教授下さい。  では。

  • 店舗名が2行にまたがり、性別が縦並びの集計結果シートである場合の集計方法

    各店舗ごとに、現在までの性別・年代別の登録者数をカウントするため、添付ファイルのように集計したいと考えています。最初はピボットテーブルで簡単に出来ると思っていたのですが、店舗名がある決められた順番(例では、わかりやすくA店、B店というような順になってますが…)で並んだ形でリスト化する必要があるのです。しかし、その決められた順番というものには規則性はないため、ピボットテーブルでやろうとすると店舗がE店、B店、D店…といった順番で並んでしまい、うまくA店、B店、C店といった順番にすることが出来ません。 かといって、別シートに店舗名だけ決まった店舗順にリストを用意し、これをピボットテーブルのデータと組み合わせてVLOOKUPを使おうとすると、今度は集計結果のシートに店舗名が2つの行にまたがっていて、その中に性別が男、女、男、女という順番で縦並びになっているため、うまく集計できず、いくつかの別シートにまたがって集計しなければなりません。 添付ファイルのように集計するためには、簡潔に集計する方法はないでしょうか? うまく伝えられていないと思うので、補足があればお伝えします。m(__)m

  • エクセルでの集計方法について

    エクセルの集計で取引先コードを指定し会社毎に集計する。(店舗名は無視) 10~12番、13番~16番 17番~20番の集計とし店舗がない場合はそのまま表示する。画像を添付しますのでよろしくお願いします。

  • 【Access】レポートのグループ集計結果をページヘッダーへ表示したい

    作業環境 Access2007 WindowsXP よろしくお願いします。 グループ化したデータの集計結果をページヘッダーより上に表示する方法は無いでしょうか。 現在店舗コードでレポートをグループ化し、金額と明細数の合計をグループヘッダーへ表示しています。 しかしこの方法だと、ページヘッダーに指定しているデータ見出しの下に合計が表示される為、見栄えが非常に悪いのです。 例) 商品No 商品名 単価 売上数 合計  ← ページヘッダーの見出し      店舗A 250  明細数 2     ← グループ集計   1    AAA   10   5    50     2    BBB   20   10   200 (改ページ) 商品No 商品名 単価 売上数 合計  ← ページヘッダーの見出し      店舗B 3,800  明細数 3     ← グループ集計   1    CCC   30   20    600     2    DDD   40   30   1200   3    EEE   50   40   2000 上記例のような表示を、以下のように変更したいのです。      店舗A 250  明細数 2     ← グループ集計 商品No 商品名 単価 売上数 合計  ← ページヘッダーの見出し   1    AAA   10   5    50     2    BBB   20   10   200 (改ページ)      店舗B 3,800  明細数 3     ← グループ集計 商品No 商品名 単価 売上数 合計  ← ページヘッダーの見出し   1    CCC   30   20    600     2    DDD   40   30   1200   3    EEE   50   40   2000 グループフッターへ合計を表示させれば問題無いのですが、 集計は必ずヘッダーへ表示させるよう指示を受けている為、 何か方法がありましたらご教授頂きたいと思います。 分かりにくい説明で申し訳ありませんが、よろしくお願い致します。