![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.7ベストアンサー
- 回答日時:
結論からいうと
VBAを使う方法が最も効果的だと考えられます。
しかし、VBAを使わないのであれば、
ご質問者さんのコメントを読んでいて感じたのですが、
EXCELの問題ではなくBPRの問題でしょう。
「他の人が色を塗っている」理由が
「今年いるデータ」と「来年いるデータ」を識別するためだとすると
「色を塗る」かわりに
「今年いるデータ(数値)を入れたセル」の隣の列に「1」を
「来年いるデータ(数値)を入れたセル」の隣の列に「2」を
いれるというルールで表を作製することにして
数値のセルには「条件付き書式」を設定し
隣のセルに「1」が入力されると「赤」で
隣のセルに「2」が入力されると「黒」で
表示されるようにしておきます。
「1または2を入力した列」は入力後「非表示」
にしてしまいましょう。
こうすることで数値のセルについては
従来と変わらない表示になります。
作業負荷も「色を塗る」と「隣のセルに1または2を入れる」
ではそれほど差はないと考えられます。
こうしておけばご質問者が集計するときには、既に識別するための列がある訳ですから
>オートフィルタで1だけ表示、2だけ表示で合計
という方法が何の作業もなく直ちに実行可能ということになります。
No.6
- 回答日時:
#5です。
すみませんテストで入力したものをそのまま回答に使用してしまい
前後のつじつまがあわなくなってしまいました。
B101に
{=SUM(B1:B27*IF(WEEKDAY(A1:A27)=1,1,0))+SUM(B1:B27*IF(WEEKDAY(A1:A27)=7,1,0))}
はセルの範囲が誤りです。
B101に
{=SUM(B1:B100*IF(WEEKDAY(A1:A100)=1,1,0))+SUM(B1:B100*IF(WEEKDAY(A1:A100)=7,1,0))}
が前段の説明と合致した正しいセルの範囲です。
数値に赤や黒の色を付ける意味は、マイナスやプラスだからということではなく、赤は今年いるデータ、黒は来年いるデータみたいな分け方です。
他の列に赤なら1、黒なら2みたいな列作って、オートフィルタで1だけ表示、2だけ表示で合計もとめたほうが無難でしょうかね…(泣
No.5
- 回答日時:
>例えば…赤色の数値と黒色の数値が一つの列にランダムで入っておりまして…
ご質問者がお使いになっている表をお作りになったのはご質問者自身ですか?
ご質問者がお使いになっている表がどのように作成されているか不明ですが、
以下のどちらでしょうか?
(1)数値を入力したあと、人手で色をつけている
(2)赤い数字、黒い数字は数値を入力すると
自動的に色がつくように作製されている
(1)の場合
皆さんのご回答のようにVBAを使うぐらいしか思いつきません。
(2)の場合で条件付書式でフォントの色を変えている場合
#3さん、#4さんの方法でもフォントカラーを識別することが
できないように思います。
しかし、自動的に色がつく条件さえわかれば
ご質問者の望んでいるようなことが可能になります。
ただし、表をお作りになったのはご質問者自身でない場合
この条件を自分で調べなければなりません。
#1さんの回答は
赤い数字がマイナス、黒い数字がプラスの例だということになります。
条件がどのようなものか不明ですが、
仮に数値が赤色になる条件が○○○○○だとして
>赤色なら「1」、黒色なら「2」みたいな識別する列を設けてやる
という手段を自動的にやらせます。
たとえばA1からZ100まで既にデータが入っているとして
B列の赤い数字だけを集計するために
AA1に「=B1*(IF(○○○○○,1,0))」を入力し、
AA100までコピーします。
AA101に「=SUM(AA1:AA100)」を記述すれば合計が出ます。
同様に
数値が黒色になる条件が△△△△△だとして
B列の黒い数字だけを集計するために
AB1に「=B1*(IF(△△△△△,1,0))」を入力し、
AB100までコピーします。
AB101に「=SUM(AB1:AB100)」を記述すれば合計が出ます。
仮にA列には日付けが入っていてB列の数値はA列の曜日によって
色が変えられており、
土曜、日曜が赤い数字
それ以外の曜日が黒い数字で表示されるように作製されている場合
上記の例では
AA1には=B1*(IF(OR(WEEKDAY(A1)=1,WEEKDAY(A1)=7),1,0))
という式を入力してコピーすることになります。
この場合、平日の合計、土日の合計が計算できることになります。
なお、AA列、AB列といった作業列を使わず配列数式を使って
B101に
{=SUM(B1:B27*IF(WEEKDAY(A1:A27)=1,1,0))+SUM(B1:B27*IF(WEEKDAY(A1:A27)=7,1,0))}
をCTRLキーとSHFTキーを押しながらENTERを押して入力することで
({}は配列数式として入力した結果であり、括弧を入力するわけではありません)
ここに土曜・日曜の合計を表示させるというテクニックもあります。
>(1)数値を入力したあと、人手で色をつけている
です。
他の方が色を塗ったものを集計して1つの表にしています…。やっぱりVBAしかなさそうですねぇ…
No.4
- 回答日時:
ツールーマクローVBEの画面の画面を出し、挿入-標準モジュールの画面で
Function clr(A)
clr = A.Font.ColorIndex
End Function
を貼り付けます。
例データ
A1:A10
1-4105
2-4105
33
4-4105
5-4105
6-4105
73
8-4105
9-4105
0-4105
A3とA7のフォント色が赤になってます。
B1には
=clr(A1)
と入れてB10まで式を複写します。結果上記の通り。
たとえばA13に
=SUMIF(B1:B10,3,A1:A10)
と入れると、結果10=3+7になりました。
配列数式などで、作業列B列を使わない方法を模索しましたが失敗。
全てをVBAで計算するのも簡単ですが、>VBAはまったく知識がありません、とのことなので、VBA関連は最小限3行にしました。
No.3
- 回答日時:
> やはり他の列を設けて、赤色、黒色で識別するコード
> みたいなのを追加してやるしかないのでしょうか~
通常は、色を付けるにあたっての条件で式を組んでいきます。そちらなら複雑になっても、とりあえず標準のもので計算可能です。(ランダムなら無理ですが・・・。)
とりあえず、モジュール化してみました。
標準モジュールを追加して
Function usCSum(usRage As Range, _
Optional usCage As Range) As Long
Dim usSum As Long
Dim usObj As Range
Dim usColor As Double
If usCage Is Nothing Then
usColor = 0
Else
usColor = usCage.Font.Color
End If
usSum = 0
For Each usObj In usRage
With usObj
If .Font.Color = usColor Then
usSum = usSum + usObj
End If
End With
Next usObj
usCSum = usSum
End Function
で
=usCSum(計算したいエリア,計算した色のフォントが付いているセル)
=usCSum(A1:A5,A4)
見たいな感じで計算は可能ですが、お勧めはしません。
No.1
- 回答日時:
色はセルの書式設定によるものであることはご存知かと思います。
そして関数はセルに入力された数値や文字列に対するものであることもご存知かと思います。
したがって、通常のやり方ではセルの色で関数を制御することはできません。
色をつけた条件はなんでしょう?
たとえばマイナスを赤、プラスを青にしたとかであれば、色ではなくその条件で計算できます。
たとえば、 =SUMIF(A1:A100,"<0",A1:A100) でA1からA100の中でマイナスのものだけを合計できます。
例えば…赤色の数値と黒色の数値が一つの列にランダムで入っておりまして…
その中で、赤色の数値だけの合計を求める みたいなのをやりたいのです…(悲
赤色なら「1」、黒色なら「2」みたいな識別する列を設けてやるしかないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
エクセル表で数字の色別合計は可能ですか
Excel(エクセル)
-
エクセルで特定の色の数字だけ計算させることはできますか?
Excel(エクセル)
-
赤字と青字だけ合計する
Excel(エクセル)
-
-
4
エクセルで文字色がついているセル数をカウント
Windows Vista・XP
-
5
エクセル関数使用で赤色数字をカウントしたい
Windows Vista・XP
-
6
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
7
Excel 書式を関数で判断。
Excel(エクセル)
-
8
エクセルで太字だけの合計を出したい!
Excel(エクセル)
-
9
エクセルで勤怠表 土日祝と平日と分けてそれぞれの合計を出したい
Excel(エクセル)
-
10
Excelで任意の塗りつぶし色の数字を集計する方法はありますか?関数を使ってできる方法があれば教えて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの入力規則で2列表示したい
-
複数の文字列のいずれかが含ま...
-
SUMに含まれる範囲から特定のセ...
-
数式が入ったセルを含めて、数...
-
エクセル:横長の表を改行して...
-
Excel上でのデータ数字が連番で...
-
スペースとスペースの間の文字...
-
エクセルでセルの値分の個数の...
-
Excelのセル内文字の並び替えに...
-
エクセルで表示されている数字...
-
入退社日より各月末の在籍者数...
-
列の数字に100をかけたい
-
Excelでセル同士のうちで、一部...
-
Excelでの検索結果を含む行だけ...
-
エクセル セル内の文字数を超え...
-
アルファベットを含む数をエク...
-
別のセルに値が入力されたら、...
-
EXCELの特定セルを編集不可・コ...
-
エクセルで1列全部10倍したい
-
エクセルのVLOOKUP関数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
数式が入ったセルを含めて、数...
-
SUMに含まれる範囲から特定のセ...
-
Excel上でのデータ数字が連番で...
-
列の数字に100をかけたい
-
スペースとスペースの間の文字...
-
エクセル:横長の表を改行して...
-
エクセルで表示されている数字...
-
エクセルでセルの値分の個数の...
-
エクセルで1列全部10倍したい
-
別のセルに値が入力されたら、...
-
HYPERLINKとADDRESSとMATCHの組...
-
エクセルで、毎日の走行距離(...
-
Excelのセル内文字の並び替えに...
-
エクセル セル内の文字数を超え...
-
エクセルのsumifでかけ算してか...
-
エクセルで小数を含む数値の抽出
-
時間を「昼間」と「夜間」に分...
-
EXCELの特定セルを編集不可・コ...
おすすめ情報