- ベストアンサー
エクセルで塗りつぶし別の合計を出す関数
エクセルで塗りつぶし別(又はフォントの色別)に入力されている数字の合計を出す関数ありますでしょうか?CONTAも同様に お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
こんにちは。 基本的にExcelでは色を基準にした計算などは出来ません。 色を基準にするの0ではなく数値や文字で処理するようにしてください。 ただこれだと回答になりませんのであまりオススメしませんが方法を紹介します。 その方法は、4.0マクロ関数を使う方法です。 この関数は古いExcelのバージョンで使われていた関数で、97以降のバージョンだとヘルプが無く、いつ使えなくなるか分からないものです。 使い方は参考URLをどうぞ
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
1週間に2-3度出てくる質問です。質問者には責めはないが、エクセルの関数というものの根本の理解がされてません。 エクセルの関数は、セルの「値」を取得し加工して、値を返すものです(そういう役割に制限されています。というか書式等に拡張されていません。昔は表計算は値だけ処理から始まった。) ですからセルの書式のパターン色、フォント色、フォントサイズ罫線 その他の情報は関数では取得できません。ただ4.0マクロ関数を使う方法というのが回答に出ますが、上記原則を崩すものではありません。 新しいエクセルのバージョンが出たとき、この原則が崩れ、書式にまで関数が拡張されるか、興味ありますが。そのほかに列幅の変更、行,列の削除、シート名の変更など関数ではできません。 ただユーザー関数というの作れるので、VBEの標準モジュールに Function clget(a) clget = a.Interior.ColorIndex End Function と入れて、A1セルのパターン色が赤の場合、 B1に=clget(A1)と入れると、3という値(色のコード)が返ります。 (ただしカラーパレットの色に限る) ですから =SUMIF(B1:B4,3,A1:A4) で赤のセルの計数合計が出ます。 着色なしの場合、変な数字が出るので、下記が良いかもしれない。 Function clget(a) Application.Volatile If a.Interior.ColorIndex > 0 Then clget = a.Interior.ColorIndex Else clget = 0 End If End Function
- nazomame
- ベストアンサー率25% (80/312)
色のついているセルの右隣あたりのセル(空白セル。なければ列の挿入等で作ってください)を選択した状態で、 メニューの「挿入」→「名前」→「定義・・・」を選択。 出てきたメニューの「参照範囲」に「=GET.CELL(63,C5)+now()*0」と入力(ここではC5に、セル色がついているものとします) 「名前」欄には適当な名前(「色」など)を入力します。 「OK」をクリックすると、先に選択していたセルに数字が表示されます。これが隣のセルの色番号です。 このセルを、他の色つきセルの右隣にコピーすれば、他のセルの色番号も出ます。 なお、文字の色番号を出すには、上の式の「63」を「24」に変えてください。 あとはこの番号を抽出条件にして sumif関数を使って合計を出せばいいのです。
- hana-hana3
- ベストアンサー率31% (4940/15541)
セルの色などの設定情報を取得する関数はありません。 ネットや過去ログ等を探すと、色情報を取得する自作関数の作り方がありますので、それと他の関数を併用することになります。
お礼
ありがとうございます。 助かりました。