• 締切済み

Excelについてです

関数についてです。 例えば、A1からE3まで任意の数字をいれます。その中から検索条件に合った数字の個数を求めたいのですが、その条件に例えば数字を赤字にしたものだけの個数を求めるやり方を教えてほしいのです。 数字の書式設定は標準または数値です。その検索条件には、例えば“2”なら 2の黒字が何個、赤字が何個というような感じに検索したいんです。

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

#212717とはちょっと違う質問のようですね。 >関数についてです とあるので、ユーザー定義関数を作ってみました。   =colorCellCount(A1:E3,2,3) のように使います。 引数は、『検索範囲、検索する値、検索する色』の順です。 上ではA1:E3の赤色(赤はコード=3)の値2の個数を数えます。 黒は『1』を指定します。初期値で黒になっているセルも黒としてカウントします。   =colorCellCount(A1:E3,2,1) 2の黒のカウント   =colorCellCount(A1:E3,2,3) 2の赤のカウント になります。 値を返れば再計算をしますが、色を変えただけの場合は再計算して下さい。 当然、他の色も使えます。色を変える操作をマクロ記録してみれば、色と数値の対応も分かるでしょう。 ご参考に。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、 挿入→標準モジュールで標準モジュールを挿入し、そこに下のマクロを貼り付けます。 ↓ここから Public Function colorCellCount(schRg As Range, schV As Double, colIdx As Variant)   Dim cot As Double '検索に合致した個数   Dim rg As Range 'セル   Application.Volatile '自動再計算関数にする   For Each rg In schRg     '値の一致を調べる     If rg.Value = schV Then       '色の一致を調べる(フォントの色)       If rg.Font.ColorIndex = colIdx Then         cot = cot + 1       End If       '黒(colIdx=1)を指定している場合は『自動指定』の個数も加える       If colIdx = 1 Then         If rg.Font.ColorIndex = xlColorIndexAutomatic Then           cot = cot + 1         End If       End If     End If   Next   colorCellCount = cot End Function

  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.2

色付セルの集計(エクセル) http://oshiete1.goo.ne.jp/kotaeru.php3?q=212717 エクセルの技 http://www2.odn.ne.jp/excel/waza/ 参考になりそうな所を見繕いました 参考になれば幸いです

  • hiromuy
  • ベストアンサー率27% (103/370)
回答No.1

エクセル関数で色の取得は、VBAでないと出来ません。 VBAの表現方法は、参考URLを参照して下さい。

関連するQ&A

  • EXCELの書式設定、表示形式について

    よく使っているエクセルの同一のシート上の異なるセル同士なのですが、同じ数値でもそれぞれのセルで違う表示形式で表示されてしまい困っています。具体的には、計算結果が"0"となったときの表示形式なのですが、 A3セルには"=A1-A2"のように入っていて、赤字で"-0"と表示されます。 B3セルには"=B1-B2"のように入っていて、黒字で"0"と表示されます。 A3,B3どちらも表示形式の書式設定は数値で"-1234"(赤字)の設定になっています。 正確には、その参照先のセル(A1やB2など)もさらに別のセルを参照していたり、数式が入っていたりですが、同様の症状が出て解決された方などいませんでしょうか。 ちなみに、A3,B3ともに直接数字の"0"を入れればそのまま黒字で"0"が表示されるので、そのセルの書式設定の問題ではなく、数式の参照先のセルの方などの影響ではないかと考えています。 何か解決の手がかり等ありましたらご教授願います。

  • エクセル初心者です。

    セルAに=B&C&D&Eという式を入れます。そのうちBには数字が入っているものもあります。5,000とか12,300とか800とか文字とか・・。で、セルAで見たときに5,000という数値が5000となってしまいます。セルBの書式設定を標準にしても、通貨に変わってしまいます。全部で100行くらいデータが入っていて、最初の5行くらいまでは、設定も標準になっていて、セルAの表示も5,000となっています。何がいけないのでしょうか??

  • エクセルの条件付き書式で悩んでます。

    エクセルの条件付き書式で悩んでます。 祝日の時に、文字を赤字にしたいです。 ネット上でエクセル関数とか条件付き書式だの調べたのですが、うまくいきません。 条件付き書式の中の 数式を使用して、書式設定するセルを決定 を選んでandかorを使うそうです。 ところがうまくいきません。写真の赤くなってしまうところには、条件付き書式をしています。 =or(祝日aセル,祝日bセル,)というふうに入れてます。 しかし、2020年1月8日は祝日ではないから黒字にならなきゃいけないのに赤字になってしまいました。 条件付き書式でどのように設定すればいいんですか? または他の方法でもいいです。祝日が赤字になってくれればいいです。 ちなみに、条件付き書式でorなんとかにすると祝日リストが5年とか10年とかだとカーソルドラッグとかでさーっと出来なくてしんどいです。コンマ毎回打たなければならないからです。or構文は範囲指定できない!? さらに面倒くさいので10年分の祝日をリスト化しときたいです。つまり、2010年から2020年です。 知ってる方ご教示ください

  • エクセルで順列が違う数列の認識はできますか?

    タイトルが分かり辛い表現になってしまいました。 ランダムな四桁の数字がA列に並んでいるとします。 ここでB2に任意の四桁の数字を入力します。 この数字で構成されている四桁の数字が入っているセルを任意の色で塗りつぶすように 条件付き書式を設定したいのですが、どのようにすればいいのでしょうか? 画像の例で言えば1234と打ち込んでますので 「1234」「1243」「1324」「1342」「1423」「1432」 「2134」「2143」「2314」「2341」「2413」「2431」 「3124」「3142」「3214」「3241」「3412」「3421」 「4123」「4132」「4213」「4231」「4312」「4321」 の24つの数字が出てきた所に塗りつぶしを行いたいのです。 B2の数字を変えても反応するようにしたいので 条件に以上の24つを設定する方法ではできません。 エクセルは2010を使っています。 ちなみにA列にはRAND関数を使っています。 宜しくお願いします。

  • Excelで、「+○,○○○」という表示を、数値として表示させるには?

    Excelで、「+○,○○○」という表示を、数値として表示させるには? 私の質問の書き方が悪かったので、改めて質問をさせて頂きます。 前回、お答えくださった方々には、この場を借りてお詫び申し上げます。 さて、本題ですが、 Sheet1のA1セルに、 Sheet2のA1セルに手入力した、「数字の前に + あるいは - が付く数値」を、桁区切りのカンマ付きで表示させています。 + を表示させるために、参照元のセルの書式を「文字列」にしています。 参照先のSheet1のA1セルの隣のA2セルに入っている数値を、 Sheet1のA1セルが -○,○○○ の場合には赤字で、 Sheet1のA1セルが +○,○○○ の場合には黒字で表示させたくて、条件付き書式で [=$A$1<0]という数式を入れてみたものの、 参照元が「文字列」なので、どうやら参照先も文字列と判断されてしまうらしく、条件付き書式が機能してくれません。(参照元を「標準」等に直せば機能します) +○,○○○という表示を、数値として表示させることができれば、解決すると思うのですが、他に方法があればそれにはこだわりません。 なにか良い案はないでしょうか? お知恵を拝借させてください。

  • エクセル 関数について

    入力データ A1~A10に数値10 B1~B20に数値20 C1~C10に数値30が入力されています 質問 A1~C10の範囲内から、E1に数値 0~10の個数、E2に数値11~20の個数、E3に数値21~30の個数、 E4に数値10~30以外の個数を関数を使って計算させるには、どのようにしたらよいのでしょうか? 現在 COUNT、COUNTIF、FREQUENCYを使ってみたのですが、、、うまくいきませんでした。 何か良い アドバイスを下さい 宜しくお願い致します

  • エクセル2007の条件付き書式設定について

    エクセル2007の条件付き書式設定についてお尋ねします。日付が入っているセルの横のセルに表示形式をaaaaにして曜日を表示しています。 土曜日は青字で日曜日は赤字で表示したいのですが、条件設定しても 標準のままになります。WeekdayやMIDの関数を使わないと条件付きは使えないのかお教え下さい。 A1 → 日付 B1 → =A1にし表示形式のユーザー定義でaaaaとしています。 B1セルで条件付き書式設定で土曜日は青字、日曜日は赤字にしたいの ですが設定方法をお教え下さい。宜しくお願い致します。

  • エクセルに数字が正しく入れられないのです

    16桁の数字を入力したところ、最後の数字「5」を入れると「0」になってしまいます。 書式設定が「標準」になっていたので最初は6桁+Eなどとなってしまったので、「数値」に変えたら16桁は表示できたのですが、最後の数字だけかわってしまいます。16桁というのがいけないのでしょうか? 正しく表示する方法を教えてください。よろしくお願いします。ソフトは2003です。

  • エクセルの条件つき書式を別のセルに適用させる

    お世話になっております。m(_ _)m エクセルに「条件つき書式」という機能があります。 これは、「設定をしたセルの書式」を制御するものですが、条件の指定に使うセルと書式を設定したいセルが別の場合は、どのようにすればよいのでしょうか?可能なのでしょうか? やりたいことは、A1のセルに入っているデータが8桁なら書式を「00000000(ゼロ8個)」とし、9桁なら「000000000(ゼロ9個)」というようにしたいのです。 このような設定をしなければならない理由は、このセルに入るデータは桁数が8桁か9桁で、数字か文字か決まっていないデータが入ります。 例)00123445   E0123456   012345678   Z12345678 等 「E0123456」や「Z12345678」が入る場合は文字列としてデータが扱われてもかまわないのですが、「00123445」や「012345678」は「数値」として扱いたいのです。 「00123445」の場合、数値としてこの数字を表示したければ書式を「00000000(ゼロ8個)」とすればよいと思います。 しかし、このセルには9桁の「012345678」というデータが入る可能性があります。このデータも数字として扱いたいので「000000000(ゼロ9個)」とすればよいとなります。 しかし、ゼロ9個の書式設定をしてしまうと、8桁の数字が「000123445」と表示されてしまいます。それでは困ります。 8桁は8ケタ、9桁は9ケタで、0から始まる数字を表示したい場合、どのようにすれば表示できるでしょうか? 長くなりましたが回答をお願いします。

  • エクセルの条件付書式で・・

    条件付き書式でたとえば、A1からA10までの入力済みセル(数値)のなかで500という数字があった場合A11のフォントを赤くしなさいというような奴が出来そうでできません 関数でも結構です。どなたか助けてください。