プロが教えるわが家の防犯対策術!

【EXCEL2007について】抽出・書式・カウントについて

下記のような時
どのようにすればよいか教えてください。


一つのセルの中に
「バラ/たんぽぽ/さくら/すずらん/ひまわり」
など、スラッシュで区切られて
複数の項目が入っています。
 ※セルによって入っている項目の数、種類は異なる。
  これが縦一行入っている

(1)この中から
 「さくら」と「ひまわり」だけを
 赤色に変えるにはどうしたらよいですか?
(2)赤色に変えた文字の数を数式等で数えたい場合
 どのようにしたら良いですか?


ひとつのセルに対してではなく、
「B列」など縦一列に対して行いたいため
書式コピー・数式コピーなどで対応できる方法を
教えてください。


宜しくお願い致します! 

「【EXCEL2007について】抽出・書式」の質問画像

A 回答 (3件)

複数セルに条件付書式を設定する場合、その範囲を選択して、



書式→条件付書式

アクティブセル(範囲選択したとき、1個だけ白いセルがありますね。それです。)が例えばB1だったら、

数式が→=FIND("さくら",B1)→色設定→追加→数式が→=FIND("ひまわり",B1)→OK

ですべてのセル対象で条件付書式が設定できます。

でも、色付きのセルを数えるのは一般機能では出来ませんので、

B列を選択→データ→区切り位置→次へ→その他へチェックで横のボックスに「/」入力→次へ→完了

でスラッシュごとにセルが分かれますのでそれからCOUNTIFとかで数えたほうがいいような気がします。

…あれ?2007か。上記操作は2003です。
2007って書式を条件にカウントできるんでしたっけ?
まぁ、お好みで。
    • good
    • 0

関数を使ってセル内の文字の一部を着色するなどはできません。

マクロを使って対応することでしょう。
シート見出しで該当のシート名を右クリックして「コードの表示」を選択します。
表示の画面には下記のコードを入力します。

Sub 選択文字の着色()

Dim i As Integer
Dim m As Integer
m = 0
For i = 1 To Range("B65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("B" & i), "*さくら*") > 0 Then
Range("B" & i).Select
n = WorksheetFunction.Find("さくら", Range("B" & i))
ActiveCell.Characters(Start:=n, Length:=3).Font.ColorIndex = 3
m = m + 1
End If
If WorksheetFunction.CountIf(Range("B" & i), "*ひまわり*") > 0 Then
Range("B" & i).Select
n = WorksheetFunction.Find("ひまわり", Range("B" & i))
ActiveCell.Characters(Start:=n, Length:=4).Font.ColorIndex = 3
m = m + 1
End If
Next
Range("D1") = m

End Sub

その後に「開発」タブの「マクロ」から「選択文字の着色」を選択して「実行」します。
これによってB列でさくらとひまわりの文字が赤くなります。
同時にそれら色塗りされた文字の数がD1セルに表示されます。

これによってB列でさくらやひまわりのある文字が赤くなり
    • good
    • 0

1はセルへの入力が確定したら、数式バーの上で色を変えたい文字だけを選択して文字色を選べば変更できます。



Excel2003以前であれば、2は数式ではできません。マクロ(VBA:Visual Basic or Application)を使うしかありません。
いわゆるプログラミング。
(たしか2010でも数式ではできないはず)

色を変えたい文字が同じなら、色を変えた後にそのセルをコピーすればOK。
セルをコピーした後、反映させたいセルを範囲で選択したら「貼り付け」をすれば範囲いっぱいに貼り付けられます。
マクロのほうはそれなりに作りましょう。

この回答への補足

質問が不明確で申し訳ありません。

すでに出来上がっている表に対して
行いたい処理でして…


>1はセルへの入力が確定したら、数式バーの上で色を変えたい文字だけを選択して文字色を選べば変更できます。

→これでは500あるセルをひとつずつチェックして(セルごとに入力されているモノが違うため)
 いちいち色づけしなければいけません。

 その手間を省くために
 2003の「条件付き書式」で「▲▲を含む場合赤文字にする」といった条件をつけたかったのです


>Excel2003以前であれば、2は数式ではできません。マクロ(VBA:Visual Basic or Application)を使うしかありません。
いわゆるプログラミング。

→使用しているのは2007です。

>色を変えたい文字が同じなら、色を変えた後にそのセルをコピーすればOK。
セルをコピーした後、反映させたいセルを範囲で選択したら「貼り付け」をすれば範囲いっぱいに貼り付けられます。

→先に述べたように
 同じデータを扱っているわけではありません。
 
個々の内容の異なるセルに対して質問のような条件付き書式や数式を行いたかったのです


説明が不十分で申し訳ありませんでした

補足日時:2010/06/30 11:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!