• ベストアンサー

エクセルで、色のついた文字をカウントする

エクセル2000を使用しています。 以前にも似たような質問がありましたが 改めて質問させていただきます。 エクセル2000で会社の売上表を作成しており、 その中のデーターの中には商品の状態に より、赤、緑、黒、青と色で区分をわけています。 そのデーターの中で各色で入力されたもの で、空白は除くデータの数を数えたいのです。 VBAでいろいろためしてはみたのですが、なかなかうまくいきません。すみませんが宜しくお願い致します。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

対象セルの範囲指定をして Sub test01() Dim cl As Range t = 0 For Each cl In Selection If (cl.Interior.ColorIndex <> -4142) _ And (cl.Value <> 0) Then t = t + cl.Value End If Next MsgBox t End Sub を実行する。少数例でテスト済み。 色は無色以外は、これとこれに限るという限定をしていませんが、限定するならIF文をCASE文に置換えれば出来るでしょう。

ciscotmge
質問者

お礼

ご回答いただきありがとうございました。 早速ためさせていただきました。 フォントの色での区別でしたので一部を変更 しましたが、実行できました。 ありがとうございました。

その他の回答 (4)

  • beer55
  • ベストアンサー率33% (7/21)
回答No.5

昨日回答したbeer55です。 もしかして色文字ですか? 色文字の場合は、63ではなく24です。 =GET.CELL(24,Sheet1!B9)+NOW()*0 確認してください。

  • beer55
  • ベストアンサー率33% (7/21)
回答No.4

B1商品名 B2~B20に実際の商品名 C1数量 C2~C20に実際の数量が記載されているとします。 商品には赤、緑、黒、青の色とします。 1.B2セルを選択し「挿入」→「名前」→「定義」を選択 2.「名前」欄に「色番号」と入力 「参照範囲」に「=GET.CELL(63,Sheet1!B2)+NOW()*0」と入力 3.D2に「=色番号」と入力 4.D2以降コピー 色番号が表示されます。 5.=SUMIF("範囲","検索条件","合計範囲")関数で集計 範囲はD2~D20、 検索条件は色番号(赤なら3) 合計範囲は、C2~C20 詳しくは下記のURLを参考にしてください。

参考URL:
http://www.moreexcellent.com/excel/tips/color.htm
ciscotmge
質問者

お礼

ご回答いただきありがとうございました。 大変参考になりました。 VBA以外でも方法があるんだなと思いました。 教えていただいたやりかたでも試してみたいと 思います。

noname#240783
noname#240783
回答No.3

> cl.Interior.ColorIndex これは各セルの「塗りつぶし属性」を表しますね。 ご質問は「文字の色」と私は捉えましたので、 cl.font.ColorIndex と補足します。 (#1さん、ご回答をパクりました、すんません) ちなみに、ColorIndexは、標準のパレットのままなら、 赤=3、緑=10、黒=1、青=5です。

ciscotmge
質問者

お礼

ご回答いただきありがとうございました。 皆さんのご回答を参考に解決できました。

  • kairinkou
  • ベストアンサー率29% (5/17)
回答No.2

各セルには、どのようなもの(数字?文字列?数式?)が入力されていますか?簡単に、具体的に書いてもらえませんか?

ciscotmge
質問者

補足

早速読んでいただきありがとうございました。 入力例としては (1)A社 ○×ペン  1本 \100 (赤色) (2)B社 △鉛筆   1本 \200 (青) 数字・数式・文字列すべて入力した表になっています。

関連するQ&A

  • エクセルのオートサムについて

    エクセルのオートサムについて質問があります。 エクセルの表の中に黒、赤、青、黄色など色をかえてそれぞれ数字を入力していった場合、 (すべてバラバラの行)、各色ごとの合計を出すような機能はあるでしょうか?  つまり、色を認識して、黒の文字の合計はいくら、青で記入した文字の合計はいくら、 といった出し方ができないかということです。 どうぞよろしくおねがいします。

  • Word中のExcelの文字の色が印刷すると黒くなってしまいます

    Word中にExcelの表を挿入しました。 その際文字の色を赤、青、緑、黒で書いたのですが、印刷するとすべての文字の色が黒くなってしまいます。 解決方法を知っていらっしゃる方がいたらお教え願えないでしょうか? よろしくお願いいたします。

  • エクセルでセルの色を条件に使いたい

    エクセルの表のなかに、たくさん色分けをしているのですが、 その色分けの色を変更したいと思っています。 ・今赤で塗っているところを緑に、今黄色または黒で塗っているところを青にという ふうに、複数の変更をしたいのですが、どうしたらよいでしょうか。 教えてください。

  • 色による識別でのカウントはどうやれば・・?

    excel2007で作成した約70列5000行の表があります。 赤、青、黒など色別の○で区分してあり、各行の赤○、青○、黒○の数を調べ.るために、 COUNTIFでの検索条件を例えば「赤○」と指定したいのですがうまく行きません。 単純なマチガイだと思うのですが・・・数時間やってみてもわかりません。 知人は2007だと色での検索は可能なハズだけど2003しか使っていないので不明とのことです。 直接のカウントが無理なら、赤○はAとかに変換する関数はありますか。

  • Excelで文字色別に文字数をカウントする方法は?

    EXCELの表で、ある列に黒・青2色に分けて文字が入力されています。 列の中には一つのセルに黒・青の文字が混在している場合もあります。 知人が翻訳の仕事をやっていて、黒文字の分だけが報酬の対象になる関係で、色別に文字数をカウントする必要があります。 この作業をワークシート関数や何かのコマンドで実行する方法があるでしょうか。 もしなければVBAで、ということになるかと思いますが、何分マクロが不得手なので、なかなか構文を考えつきません。どなたか教えて頂ければ助かります。よろしくお願いします。 なお、EXCELで難しければWORDの表に変換しても構いません。(行数は数千行あります。)

  • エクセル文字色の変更

    お世話になります。 数百行にわたる表があります。 その表の中に何色か文字に色をつけています。 今回、その表全体に対して、文字色を黒(標準)に戻したいのですが、赤の字にしている部分だけは、赤のまま残したいのです。(ちなみに、赤、青、緑、茶の4色使ってます) 赤の部分だけよけて範囲指定するには、ちょっとバラバラすぎて面倒だし、いったん全部黒にしてから、再度赤の色をつけるには、数が多くて…。 何か、良い方法はないでしょうか。 ※Excel2000 です。

  • エクセルで重複データの内容を右の列に増やす方法

    エクセル2007で、表(1)のようなレコードがあります。 B列とC列の両列をキー列として、両列が次の行と同じ場合、表(2)のように一行にまとめるVBAをどなたかご教示お願いします。 過去ログ等で重複データの行削除は理解できたのですが、キー列が2列の場合や、表(2)のように右の列にデータをどんどん増やす方法がわかりません。 条件は、レコードは1000行以上、市idと社idは昇順に並んでいるため重複データは必ず上下に連続している、商品の種類は50以上あり、どれ位右に列が増えるか不明、などです。 VBA初心者です。よろしくお願いします。 表(1)(sheet1) 県名|市id | 社id|社名|商品|空白|空白・・ 秋田|0001|0001|A株|青大|空白 秋田|0001|0001|A株|赤小|空白 東京|0002|0003|B株|黒中|空白 大阪|0004|0001|C有|赤中|空白 大阪|0004|0001|C有|白大|空白 大阪|0004|0002|D株|赤大|空白 大阪|0004|0002|D株|黄中|空白 大阪|0004|0002|D株|緑小|空白 ・ ・ 表(2)(sheet2) 県名|市id| 社id|社名|商品|商品|商品・・ 秋田|0001|0001|A株|青大|赤小|空白 東京|0002|0003|B株|黒中|空白|空白 大阪|0004|0001|C有|赤中|白大|空白 大阪|0004|0002|D株|赤大|黄中|緑小 ・ ・

  • エクセルで重複データの内容を右の列に増やす方法は?

    エクセル2007で、表(1)のようなレコードがあります。 B列とC列の両列をキー列として、両列が次の行と同じ場合、表(2)のように一行にまとめるVBAを、どなたかご教示お願いします。 過去ログ等で重複データの行削除は理解できたのですが、キー列が2列の場合や、表(2)のように右の列にデータをどんどん増やす方法がわかりません。 条件は、レコードは1000行以上、市idと社idは昇順に並んでいるため重複データは必ず上下に連続している、商品の種類は50以上あり、どれ位右に列が増えるか不明、などです。 VBA初心者です。よろしくお願いします。 表(1)(sheet1) 県名|市id | 社id|社名|商品|空白|空白・・ 秋田|0001|0001|A株|青大|空白 秋田|0001|0001|A株|赤小|空白 東京|0002|0003|B株|黒中|空白 大阪|0004|0001|C有|赤中|空白 大阪|0004|0001|C有|白大|空白 大阪|0004|0002|D株|赤大|空白 大阪|0004|0002|D株|黄中|空白 大阪|0004|0002|D株|緑小|空白 ・ ・ 表(2)(sheet2) 県名|市id| 社id|社名|商品|商品|商品・・ 秋田|0001|0001|A株|青大|赤小|空白 東京|0002|0003|B株|黒中|空白|空白 大阪|0004|0001|C有|赤中|白大|空白 大阪|0004|0002|D株|赤大|黄中|緑小 ・ ・

  • あなたの好きな色など教えてください

    すこし参考にしたいので・・・アンケートです。もしよければ。 1、2は番号で答えてください。 1.あなたの好きな色は?  (1)赤、橙  (2)黄、レモン色  (3)黄緑、緑  (4)青、水色、藍  (5)紫、青紫  (6)赤紫、桃  (7)茶、ベージュ  (8)白  (9)黒 2.自分の部屋を模様替えすることにしました。絨毯の色は何色にしますか  (1)暖色系(赤、橙、桃、黄)  (2)寒色系(青、水色、藍)  (3)中性色系(緑、黄緑、紫)  (4)無彩色系(黒、白) 3.各色のイメージを書いてください   例)赤:情熱的、愛 など  ≪赤、桃、黄、緑、青、紫、茶、黒、白≫

  • エクセルで、文字の完全一致ではなく、文字の一部が含まれているかをチェックする方法

    質問させてください。 エクセルのA列の文字の一部に、B列の文字が含まれているかどうか、 をチェックする数式を教えて頂けないでしょうか。 例えば、 A列:「赤 青」、「白 黄」、「緑 黒」 B列:「赤」「青」「黒」 この場合、A列の「赤 青」と「緑 黒」のセルの横に○、 というようにしたいのですが。。 VLOOKやCOUNTIFでは、“文字の一部”というのはチェックできないようで、 かつ、LEFTやRIGHTも使いづらい場合です。 きっと簡単な数式があるのでは、と思いお尋ねしました。 どうぞ宜しくお願い致します。

専門家に質問してみよう