[[20021021140637]] 『文字色、背景色を条件に指定範囲の合計を出すには』(みい) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字色、背景色を条件に指定範囲の合計を出すには?』(みい)

例えば、背景色赤の範囲の合計を簡単にだす方法はありますか?


こんばんは

 具体的にどのような構成になっているのでしょう?

 たぶん、シート関数ではできない? と思います。 

 4.0マクロでやるかVBAで行うことになると思います

 もう少し教えていただけると解答も出やすいと思います

 (尋)


おはようございます

 4.0マクロで行う方法です。

 これは作業列を使用します。

 例えば、A1からA10までデータが入力されているとします

 ここで、A1とA3が背景色が赤色と仮定し、

 その他のセル背景色は無しとします。

 B列が作業列として、

 B1を選択して、挿入→名前→定義で名前定義のダイアログボックスが出てくると思います。

 上の方に名前を、colr (名前は何でもいいです)と入力し

 下の参照範囲に、=get.cell(63,a1)+now()*0 と入力してOKを押します

 そして、B1に =colr (先ほど名前定義をした名前を=を付けて入れる)と入力してEnter

 そうするとB1には 3 という数字でます、これが背景色赤のget.cell関数での戻り値です

 あとはB10までフィルドラッグをしてコピー、すると背景色赤のところは3が返ってきて

 それ以外の背景色なしのところは0が返ってくると思います。

 あとは、C1に =SUMIF(B1:B10,3,A1:A10) と入力すると

 背景色赤のところの合計が出ると思います。

 他の色でも取得可能です、また、文字色からでも可能です。

 get.cell関数の63を24にすれば文字の色から取得可能です 

 =get.cell(24,a1)+now()*0とすればOKです

 計算しない場合は、F9を押せば再計算をします、行ってください

 4.0マクロのヘルプはもう削除されているみたいですね残念ですが・・・・・ 

 少し長くなってしまいました。面倒くさそうなのですが、ちょっとやってみてください

 これはちょっと・・・となると後はユーザー関数になります。

 マクロは後ほど書き込みします。

 (尋)


こんばんは

 ユーザー定義関数です。

 標準モジュールに貼り付けてください

Function SumColor(範囲 As Range, 色番号 As Integer)

  Application.Volatile

  Dim i As Range

   For Each i In 範囲.Cells

    If i.Interior.ColorIndex = 色番号 Then

      SumColor = SumColor + i

    End If

  Next i

End Function

 使い方、

 例えば、A1からA10にデータがあるとします

 A1とA3が背景色赤になっているとします

 B1に =SumColor(a1:a10,3) と入力してEnterで

 指定範囲の背景色赤の合計が出ると思います。

 これは、数式パレットにも対応してますのでそこからでも入力可能です

 その他の色でも可能です。

 赤=3・黄色=6・青=5・緑=10・・・・・・・・・・など

 試してみてください。

 もう見てないかな?

 (尋)


実際にマクロコードを書いてありませんが

 文字通り,使用範囲のセルを調査し,もし色が赤であった場合に加算していく

ようにすれば,簡単に合計が出ます。

(なお)


作ってみました。

  ただし,背景色のみ対象です。

操作方法

 1)計算したい範囲をドラッグして範囲していします。(その範囲の色が反転)

2)マクロを実行します。

   すると,合計する対象の背景色を聞いてきますので,希望の色番号を入力します。

3)合計(和)が表示されます。

 Sub test2()

 Dim xx As Integer

 Count = 0

 xx = Application.InputBox("検索する色番号を入れてね。黒1、赤3、緑4、青5、黄6、桃7、ブルー8、茶9")

 For Each c In Selection

 yy = c.Interior.ColorIndex

 If yy = xx Then

 wa = wa + c.Value

 End If

 Next

 response = MsgBox("合計結果は" & wa & " でした")

 End Sub


どういうわけか,コードが改行されずに表示されています。

 編集モードに入ると,ちゃんと改行されコードが正しく表示されますので

コードをちゃんと見たい場合は一旦,編集にしてください。(なお)


 [なお]さん、コードを書く時は先頭に半角スペースを入れてください。

 そうすれば、改行されます。

 (kazu)


 みいさんこんにちは

便利な合計方法の回答が紹介されましたが、返信がないので、解決されたのか確認できませんが

 データ量が多くなければ、単純な手動操作で、Ctrlキーを押しながら目的のセルを選択して

ワークシートの下に表示されているコマンドバーを右クリックして「合計」を選択で表示されます。

この選択状態で「最大値、最小値、平均、データの個数、数値の個数」なども確かめられます。

 (シニア)



コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.