
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) エクセルで文字列と数字が混在する列に書式設定したい。 3 2022/12/19 09:11
- Excel(エクセル) Excelの数字(文字列)合計について あるデータをダウンロードすると、数字データが全て文字列になっ 4 2022/09/26 21:21
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- その他(プログラミング・Web制作) 文章中の数値を自動で足すサービスはあるでしょうか? 1 2022/10/16 08:10
- Excel(エクセル) エクセルの関数式を教えてください 2 2022/06/15 18:25
- フリーソフト OpenOffice 表計算で文字としてコピペ 2 2023/05/31 11:11
- Excel(エクセル) エクセルでの操作方法 1 2022/11/15 14:09
- Excel(エクセル) if関数教えてください 3 2023/07/24 10:31
- 化学 有効数字の取り扱いについて 高校化学では、測定値同士の計算結果の有効数字は、測定値に合わせるようにな 4 2022/06/30 14:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの入力規則で2列表示したい
-
複数の文字列のいずれかが含ま...
-
エクセルで曜日に応じた文字を...
-
Excelでの検索結果を含む行だけ...
-
SUMに含まれる範囲から特定のセ...
-
Excel上でのデータ数字が連番で...
-
Excelにて、セルをダブルクリッ...
-
数式が入ったセルを含めて、数...
-
エクセルで、毎日の走行距離(...
-
【Excel】での計算式教え...
-
エクセルで表示されている数字...
-
時間を「昼間」と「夜間」に分...
-
複数のexcelファイル 同一セル...
-
○印が付いてる箇所だけの集計を...
-
エクセルで小数を含む数値の抽出
-
エクセルでセルの値分の個数の...
-
エクセルで住所の番地順に並べ...
-
EXCELの特定セルを編集不可・コ...
-
Excelの表作成でコピペ作業を軽...
-
スペースとスペースの間の文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの入力規則で2列表示したい
-
複数の文字列のいずれかが含ま...
-
SUMに含まれる範囲から特定のセ...
-
数式が入ったセルを含めて、数...
-
Excel上でのデータ数字が連番で...
-
エクセルで表示されている数字...
-
エクセルでセルの値分の個数の...
-
Excelでの検索結果を含む行だけ...
-
「エクセル」特定の行(セル)...
-
スペースとスペースの間の文字...
-
エクセル:横長の表を改行して...
-
エクセルで曜日に応じた文字を...
-
列の数字に100をかけたい
-
エクセルで、毎日の走行距離(...
-
エクセル セル内の文字数を超え...
-
Excelのセル内文字の並び替えに...
-
エクセルのsumifでかけ算してか...
-
時間を「昼間」と「夜間」に分...
-
別のセルに値が入力されたら、...
-
入退社日より各月末の在籍者数...
おすすめ情報