- ベストアンサー
エクセルで別シートから一つのシートに低い数字を表示
エクセルで同一形式の8枚の別シートから1枚のシートへ一番価格が低いものを表示させたいんです。さらに表示させたシートの色に表示させる様にしたいです。 例 シート1 シート色赤 A 100 B 200 C 300 シート2 シート色青 A 200 B 100 C 300 シート3 シート色黄 A 300 B 200 C 100 合計シート A 100 赤 B 100 青 C 100 黄 数字だけでも表示できると助かるのですが やはり色もつけるとなるとマクロを組まないといけないのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! VBAでの一例です。 >同一形式の8枚の別シート・・・ とありますので、↓の画像のようにSheet見出しの2番目以降に「8枚」のSheetがあり 「合計Sheet」はSheet見出しの一番左に配置してあるとします。 一案ですが、Sheet見出しに好みの色を付けておきます。 (Sheet見出し上で右クリック → 「シート見出しの色」 → 好みの色を選択) すべてのSheetのA列配置は同一だという前提です。 Alt+F11キー → 画面左の「This Workbook」をダブルクリック → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j, k, M As Long Dim ws As Worksheet Set ws = Worksheets("合計Sheet") '←「合計Sheet」部は実際のSheet名に! i = ws.Cells(Rows.Count, 2).End(xlUp).Row If i > 1 Then Range(ws.Cells(2, 2), ws.Cells(i, 2)).Clear End If For i = 2 To ws.Cells(Rows.Count, 1).End(xlUp).Row For k = 2 To Worksheets.Count With ws.Cells(i, k + 1) .Value = Worksheets(k).Cells(i, 2) .Interior.ColorIndex = Worksheets(k).Tab.ColorIndex End With Next k M = WorksheetFunction.Match(WorksheetFunction.Min(Range(ws.Cells(i, 3), ws.Cells(i, 10))), _ Range(ws.Cells(i, 3), ws.Cells(i, 10)), False) ws.Cells(i, M + 2).Copy Destination:=ws.Cells(i, 2) Next i ws.Columns("C:J").Clear End Sub 'この行まで ※ 最小値が複数ある場合は最初のデータが表示されます。 ※ 「合計Sheet」のC列以降を作業用の列としていますので、データはない!という前提です。 ※ 関数でないのでデータ変更があっても反映されません。データ変更があるたびにマクロを実行する必要があります。 尚、「合計Sheet」のB列に条件付書式が設定してあると色がつかないかもしれませんので 条件付書式は削除しておいてください。 お役に立ちますかね?m(_ _)m
その他の回答 (3)
- MackyNo1
- ベストアンサー率53% (1521/2850)
補足回答には報告されていませんが、最小値を表示する数式はうまく表示できたのでしょうか? もしうまく表示できているなら、色を付ける部分は数式を使った条件付き書式で対応できます。 例えばB2セル以下を選択し、ホームタブの条件付き書式から「数式を使用して・・・」を選択して以下の式を入力、「書式」から塗りつぶしを赤にします。 =COUNTIFS(Sheet1!A:A,A2,Sheet1!B:B,B2) 2つ目以降のシートに対応する式についても、「ルールの管理」から「新規ルール」を追加して、上記の式のSheet1をSheet2に変更した数式で条件付き書式を作成してください。
- aokii
- ベストアンサー率23% (5210/22062)
数字だけなら、 =MIN(Sheet1!B1,Sheet2!B1,Sheet3!B1) で下にドラッグコピーでいかがでしょう。 色もつけるとなると、難しいです。シート名と色と各データの関係表を作ったほうが解りやすいかも。
- MackyNo1
- ベストアンサー率53% (1521/2850)
例えば、Sheet1からSheet8までのB2セルの中で最も小さい数字は以下の数式で求められます。 =MIN(Sheet1:Sheet8!B2) 色も付けるとは具体的にどのセルに色を付けるのでしょうか? Excelを含むOfficeソフトはバージョンによって操作法や使用できる機能が大きく異なりますので、質問の際にはバージョンを明記するようにしましょう。
補足
ご回答有難う御座います。 情報不足大変申し訳有りません。 OS windows XP office Excel 2010 です 色を付けたい部分は一番低い数字を表示させるセルに色を付けたいと思っています。 説明不足で大変申し訳ありません