[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『色付き文字のカウント方法』(シモちゃん)
下記の様な表があって、チーム毎のカウントをするのに、チーム名がフォントの色で分けれ れている場合、赤のフォントの文字は赤のチームの所に、黒のフォントの文字は黒のチーム に、青のフォントの文字は青のチームにカウントされるようにしたいのですが、どうしたら いいか教えて下さい。(エクセル初心者です)宜しくお願いします。
チーム名 チーム名 チーム名 チーム名
赤チーム 2 黒チーム 1 青チーム 1 赤チーム 黒チーム 赤チーム 青チーム
赤チーム 0 黒チーム 3 青チーム 1 黒チーム 黒チーム 黒チーム 青チーム
赤チーム 4 黒チーム 0 青チーム 0 赤チーム 赤チーム 赤チーム 赤チーム
A B C D E F G 1 赤 黒 青 第1試合 第2試合 第3試合 第4試合 2 3
A2 に =COUNTIF($D2:$G2,A$1 & "*") と入れて、この式を必要な範囲にコピーします。シモちゃんが本当に初心者なら、 カラーでなく、上記のような方法で処理された方がいいと思います。 初心者じゃなくても、それをお勧めしたいと思います。(通りすがりの者)
おはようございます。 「通りすがりの者」さんの方法が最良の方法やと私も思いますわ。既存の関数で処理 でけますさかいナ。
でなかったら賢者の「潔しとしない」マクロの力を借りなあきまへんさかいなぁ。 ま、一応作ってみましたんで、遊びや思うて試してみておくんなはれ。
「Alt」+「F11」でVBEを開いてください。 「ThisWorkbook」をダブルクリックでシートモジュールを表示して下さい。 そこへ下のコードをコピペして下さい。 ひょっとしたらWorkbook_Openっちゅうんが出てくるかも知れまへんが、そんなんは 無視しとっておくんなはれ。
'---------------------- Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Application.Calculate End Sub '---------------------- 慌てんでもよろしいんやで、失敗したら何回でもやり直せますさかいナ。 今度は「挿入」→「標準モジュール」を選択しておくんなはれ。 真新しい画面が表示されますから、そこへ下のコードをコピペですわ。
'------------------------ Function kuro(data As Range) Application.Volatile For Each c In data If c.Font.ColorIndex = 1 Or c.Font.ColorIndex = xlAutomatic Then Cnt = Cnt + 1 End If Next c kuro = Cnt End Function '------------------------------- Function aka(data As Range) Application.Volatile For Each c In data If c.Font.ColorIndex = 3 Then Cnt = Cnt + 1 End If Next c aka = Cnt End Function '--------------------------------- Function ao(data As Range) Application.Volatile For Each c In data If c.Font.ColorIndex = 5 Then Cnt = Cnt + 1 End If Next c ao = Cnt End Function '-----------------------------------
旨い事コピペでけましたかいな? でけたら、「Alt」+「Q」でエクセルに戻って下さい。 これで準備完了ですわ。 赤のカウントを出したいセルに =aka(a1:e1) ←データの範囲を指定 青のカウントを出したいセルに =ao(a1:e1) 黒のカウントを出したいセルに =kuro(a1:e1) とそれぞれ記入して、必要なだけ下方向にコピーして下さい。
どうでっか?旨い事いきましたかいな? ただ1つ難点がおまんねん。データを変換した場合、このカラーと言う奴は再計算して くれん時がありまんねんなぁ、これが。「Shift」+「F9」でやってくれますけど、な んとなく面倒でっしゃろ? まぁ、いっぺん試してみておくんなはれ。
使えんようやったらVBAを開いて「Module」を右クリックして「Moduleの解放」を選択 しておくんなはれ。 ほな...(弥太郎)
横からすみません。 思うに、単に赤・青・黒の3チームではなく、フォント色は○部所属かなんかの区分けで、チーム名はもっとある? それで例題の表を見ると、例えば赤(1部)、青(2部)、(3部)と分ける必要があるという意味でしょうか? このサイトで習ったGET.CELL関数で可能なことは可能です。 A B C D E F G H I J K L M N 1 赤 青 黒 チーム名 チ名 チ名 チ名 2 赤 黒 赤 青 文字色 3 黒 黒 黒 青 文字色 4 赤 赤 赤 赤 文字色 というセル配置として、J2に"文字色"と入力してください(J3,J4にも)。 K2セルに、挿入→名前→定義と進み、参照範囲に =GET.CELL(24,sheet1!E2) 、名前を文字色とします。 k2セルに、=文字色 と入力し、K2セルをN2までコピー&ペースト。 k2から順に、3・0・3・5となりました?ついでにN4までフィルします。 A2に =COUNTIF(($K2:$N2,3) これをA4までフィル。 同じくB2は=COUNTIF($K2:$N2,5) 、C2は=COUNTIF($K2:$N2,0)として下にフィルで計算できます。 ちなみにGET.CELL(検査の種類、範囲)となってまして、(24)はフォントの色、 他にフォントサイズ(19)、太字(20)、斜体(21)、数式入力(48)、塗りつぶし色(63)などを抽出します。
ついでに、これまでも何回か出現していますがヘルプにも無い関数なので、 (通りすがりの者)さんの言うように別な関数を考えるのが本筋だそうです。 関数で手一杯で、弥太郎さんのコードはたまる一方です。 学習中の(kobi)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.