Excelで検索結果に各チームの合計点を表示する方法

このQ&Aのポイント
  • Excelでフィルタ表示(マクロ使用)の結果を別シートにコピーした後、検索結果と共に各チームの点数の合計を表示する方法について説明します。
  • 検索結果が表示された最終行の次の行に、各チームの点数の合計を計算して表示したい場合、以下の手順を実行します。
  • まず、直近の●より下の点数のみを合計するために、条件付き合計関数を使用します。また、得点のないチームを除外するために、条件付き書式を設定します。
回答を見る
  • ベストアンサー

Excelで、フィルタ表示(マクロ使用)の結果を別シートにコピーした後・・・

|日付|開催地|英|米|仏|伊|独 |○日|神奈川|壱|壱|●|□|壱 |◎日|神奈川|●|壱|壱|□|□ |△日|神奈川|壱|壱|壱|□|● |▲日|和歌山|壱|壱|壱|壱|● このようなデータベース(表)があります。 1行目がタイトルで英~独はチーム名です。 チーム名欄には点数が入力されています。  ※漢数字は普通の数字、”□”は空白に読み替えてください ここで検索用シートにて、例えば開催地を 神奈川で検索すると |日付|開催地|英|米|仏|伊|独 |○日|神奈川|壱|壱|●|□|壱 |◎日|神奈川|●|壱|壱|□|□ |△日|神奈川|壱|壱|壱|□|● 現在はこんな感じで検索結果が表示されます。 このとき検索結果と共に各チームの点数の合計を 検索結果が表示された最終行の次の行に計算させて 表示したいのですが、全ての点数を加算するのではなく そのチームについている直近の●より 下の点数のみを合計して表示したいのです。 |日付|開催地|英|米|仏|伊|独 |○日|神奈川|壱|壱|●|□|壱 |◎日|神奈川|●|壱|壱|□|□ |△日|神奈川|壱|壱|壱|□|● □□□□□□□□壱□参□弐□□□零 ←こんな風に 英は、◎日において●が付いているので合計点は1点。 伊は、神奈川においては得点がないので空白とする。 独は、抽出された最終日において●なので点数は0点となる。 更にこの状態から得点のないチームを除きたい。 ただし、伊は除外するが、独は0点では あるものの点数はあると考えて残す。 |日付|開催地|英|米|仏|独 |○日|神奈川|壱|壱|●|壱 |◎日|神奈川|●|壱|壱|□ |△日|神奈川|壱|壱|壱|● □□□□□□□□壱□参□弐□零 ↑最終的にこのような形で表示したいのですが どのように処理すればよいでしょうか。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

#1です。 何処で止まるのか、どんなメッセージで止まるのかを書けばある程度は推測出来ますが、、、 VBAヘルプがインストール済みならば、解らない部分にカーソルを入れて F1キーを押すとヘルプが表示されます。 VBAヘルプが未インストールなら OfficeのCDから追加インストールします。 例) Offset が解らないなら、Offsetという単語の中にカーソルを入れて F1キーを押下 またVBE画面とExcel画面を並べて表示し、VBEメニューのデバック-ステップ実行にして F8キーを押下していくと実行する様子や変数の状況などを確認出来ます。(私が提示したサンプルは殆ど動きがないですが、、、) Sub Test() '変数宣言 Dim myCol As Integer, myVal Dim LRow As Long, myRow As Long 'アクティブシートに対して With ActiveSheet  'A列の最終行+1の行番号を保持(合計を入れる行とする)  LRow = .Cells(65536, 1).End(xlUp).Offset(1, 0).Row  'タイトル行(1行目)の最終列を探し、最終列から3列目までループ  '右から左に処理をするのは列を削除する可能性があるため  For myCol = .Range("IV1").End(xlToLeft).Column To 3 Step -1    '変数初期化    myVal = 0    '対象列の最終行番号を取得    myRow = .Cells(65536, myCol).End(xlUp).Row    '対象列の最終行番号が1ならばタイトルのみと判断し列を削除    If myRow = 1 Then     .Columns(myCol).Delete    Else     '対象列の最終行番号が1じゃない場合     '最終行から上にループ(変数myRowが1より大か、●じゃないなら)     Do While myRow > 1 And .Cells(myRow, myCol).Value <> "●"       'セルの値を足す       myVal = myVal + .Cells(myRow, myCol).Value       '変数を減らす(上にループするため)       myRow = myRow - 1     Loop     'ループを抜けたら結果を合計行に代入     .Cells(LRow, myCol) = myVal    End If  '次の列へ  Next myCol End With End Sub

typemode
質問者

お礼

papayukaさん 今回は本当にご迷惑をおかけし、また大変な失礼が あった事を深くお詫び申し上げます。 急いでいたものでこの様なマナー違反をしてしまい 深く反省しております。 今後この様な事がないよう気を付けます。 この度は本当に失礼しました。 返答頂き本当にありがとうございました。

その他の回答 (2)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

ありゃ? http://okwave.jp/kotaeru.php3?q=2261678 これって失礼な行為ですよ。 少なくともここは「閉じてから」立てるべきだと思いませんか? #2を書いて馬鹿を見た。 他の質問も閉じない方のようですが。

typemode
質問者

お礼

本当に失礼致しました。 他の質問についても早急に対処致します。 どうか気を悪くなさらないでください。 本当に助かりました。 どうもありがとうございました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

A1から始まるタイトル付きのリストで A1=日付、B1=開催地、C列以降にチームがあると想定してます。 ベタですが、、、 Sub Test() Dim myCol As Integer, myVal Dim LRow As Long, myRow As Long With ActiveSheet  LRow = .Cells(65536, 1).End(xlUp).Offset(1, 0).Row  For myCol = .Range("IV1").End(xlToLeft).Column To 3 Step -1    myVal = 0    myRow = .Cells(65536, myCol).End(xlUp).Row    If myRow = 1 Then     .Columns(myCol).Delete    Else     Do While myRow > 1 And .Cells(myRow, myCol).Value <> "●"       myVal = myVal + .Cells(myRow, myCol).Value       myRow = myRow - 1     Loop     .Cells(LRow, myCol) = myVal    End If  Next myCol End With End Sub

typemode
質問者

お礼

大変ありがとうございます。 papayukaさんには以前にもお世話になりました。 あまりにも素早く的確な回答で助けられております。 簡単なシートを作って試してみたところ 思っていた通りの結果になりびっくりしました。 自分ではもっと複雑な作業をしなければならないと 思っていました。(というかまだまだVBAについて 知らない事が多いです) 早速、適用しようと今作っている本シートの方に 組み込んでみたのですが、うまくいかず止まって しまいました。 できれば上に記述頂いたコードの各行に VBAの簡単な訳を付けて頂けないでしょうか。 お手数おかけしますがよろしくお願い致します。

関連するQ&A

  • 幹音名

    訳あって、日・独・伊・英・仏の幹音名を調べなければなりません。 日・独・伊・英の幹音名は分かったのですが、仏の幹音名が分かりません。 誰か仏の幹音名を教えてください。お願いします。

  • どこの国?

    米はアメリカですよね? 英 独 仏 伊 これはどこの国ですか?

  • 小説の資料で

    小説の資料で、戦闘機や戦艦、戦車などの兵器を探しています。 最近のものでいいので、教えてほしいです。 日・独・伊・英・米・仏・露・中、あたりのものがほしいです、陸空海は問いませんのでお願いします。

  • 第二次大戦で最もヒドイことをした国

    第二次世界大戦で、最もヒドイことをした国を教えてください。 「ヒドイこと」の基準は回答者様の主観でお願いします。 民間人大量殺戮、強姦など、なんでも結構です。 主要参戦国:日、独、伊、米、英、中、ソ、仏、豪、加

  • 何時の誰が連合国と枢軸国を決めたのか?

    よく第二次世界大戦の事を 「米・英・仏・ソ・中の連合国と日・独・伊の枢軸国の戦い。」 って言い方をされたりしますけど、歴史を調べるとフランスは開戦直後にドイツに降伏してヴィシー政権が誕生して以降は枢軸国になっていたり、反対にイタリアは戦時中にムッソリーニ政権が倒れて以降、途中から連合国になりドイツに宣戦布告していました。 またソ連も開戦当初はドイツと条約を結んで「連合国」のポーランドに侵攻しています。 個人的には第二次世界大戦後に「正式」に参戦した時の各国の立場を表現してるだけで歴史の上ではあまり正しくない様にも思えるのですが、上記の様な、この「米・英・仏・ソ・中の連合国と日・独・伊の枢軸国の戦い。」って表現は一体誰が何時になって決めた表現なのでしょうか?

  • 多言語英語電子辞書を探しています

    OEDレベルの多言語電子辞書を探しています。○日・日○ではなく○英・英○で、○=独、仏、伊、西外が1台に入っていると助かります。eBayなどで探しましたが、見つかりませんでした。メーカー・機種が分かれば海外のメーカーでも直接コンタクトして入手たいと思っております。

  • いろんな言語の「霧」

    「霧」という意味の色々な外国語を探しています。 有名所(英、独、伊、仏等)は調べられたのですが、訳せても読み方がわからない言語が多く、困っています。 どこの国でも構いませんので(出来ればちょっとマイナー所で) アルファベット表記と読み方を教えていただけると有難いです。 よろしくお願い致します!

  • 世界各国を漢字一字で表すと、どうなりそうですか?

    世界各国を漢字一字で表すと、どうなりそうですか? 米・英・仏・独・伊など、今使われているのは読みから考え出された漢字ですが、特徴をよく表しているような「この国の漢字」を選んでみていただきたいのです。 因みに私が選んだのは、中国の「自」です。共産主義体制とはいいながら、実は国家も個人も「自」の思想が異常に強い。。。

  • G7

    G7って日・米・英・仏・独・伊・加の7カ国ですよね。何が基準にされているのですか?経済状況や市場経済の発達度で進んでいるということなのでしょうか?

  • 各国の国会議員候補者について

    日、米、英、仏、独、それぞれの国会議員候補者の擁立過程について教えてください。恐縮ですがお願いします。卒論のため皆さんの意見も伺えたらと思っています。

専門家に質問してみよう