エクセルで同一形式の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 黄
数字だけでも表示できると助かるのですが
やはり色もつけるとなるとマクロを組まないといけないのでしょうか?
No.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
No.3
- 回答日時:
補足回答には報告されていませんが、最小値を表示する数式はうまく表示できたのでしょうか?
もしうまく表示できているなら、色を付ける部分は数式を使った条件付き書式で対応できます。
例えばB2セル以下を選択し、ホームタブの条件付き書式から「数式を使用して・・・」を選択して以下の式を入力、「書式」から塗りつぶしを赤にします。
=COUNTIFS(Sheet1!A:A,A2,Sheet1!B:B,B2)
2つ目以降のシートに対応する式についても、「ルールの管理」から「新規ルール」を追加して、上記の式のSheet1をSheet2に変更した数式で条件付き書式を作成してください。
No.2
- 回答日時:
数字だけなら、
=MIN(Sheet1!B1,Sheet2!B1,Sheet3!B1)
で下にドラッグコピーでいかがでしょう。
色もつけるとなると、難しいです。シート名と色と各データの関係表を作ったほうが解りやすいかも。
No.1
- 回答日時:
例えば、Sheet1からSheet8までのB2セルの中で最も小さい数字は以下の数式で求められます。
=MIN(Sheet1:Sheet8!B2)
色も付けるとは具体的にどのセルに色を付けるのでしょうか?
Excelを含むOfficeソフトはバージョンによって操作法や使用できる機能が大きく異なりますので、質問の際にはバージョンを明記するようにしましょう。
この回答への補足
ご回答有難う御座います。
情報不足大変申し訳有りません。
OS windows XP
office Excel 2010
です
色を付けたい部分は一番低い数字を表示させるセルに色を付けたいと思っています。
説明不足で大変申し訳ありません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) Aフォルダにあるエクセルの表をBフォルダへ映したい【表題じだけする】 2 2023/08/24 06:41
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 複数のシートからグラフ...
-
エクセル自動の年月
-
エクセルで入力シートから別シ...
-
VBAのoffsetの動き方について教...
-
Excelの中央値の複数条件について
-
エクセル マクロを使って日々...
-
Excel日付変更との参照先の連動
-
エクセルで入力→日付を自動判別...
-
エクセルで、他シートから統計...
-
VBA セルの値と同じ名前のシー...
-
[エクセル]先頭シートから最終...
-
エクセル シフト勤務表から、...
-
エクセルのワークシートが重く...
-
エクセルで別シートから一つの...
-
VBAでシート名をセルから取得し...
-
IF, ISNUMBER, INDIRECTの組み...
-
Excelの選択肢をポップアップリ...
-
ExcelVBAで、指定したシートに...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
VBA セルの値と同じ名前のシー...
-
Excel 複数のシートからグラフ...
-
ExcelVBAで、指定したシートに...
-
Excelの中央値の複数条件について
-
Excel ハイパーリンク先のセル...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセルのワークシートが重く...
-
VBAでシート名をセルから取得し...
-
エクセルで入力→日付を自動判別...
-
質問:特定文字列から空白行ま...
-
エクセル自動の年月
-
エクセル シフト勤務表から、...
-
エクセル マクロを使って日々...
-
VBAのoffsetの動き方について教...
-
Excel日付変更との参照先の連動
-
エクセルVBA:表の内容を担当者...
-
EXCEL VBA 一致しないデータの...
-
エクセルについて質問です 日付...
-
Excelの選択肢をポップアップリ...
おすすめ情報