

なにか良い方法があれば教えてください。
複数シート(30シートほど)の特定範囲内で、特定セルに入力があれば1行まるまる抽出し、
一覧にしたいです。
なお、特定範囲には入力がないこともあるので、その場合は、次の行もしくは別シートを参照するようにしたい。
マクロは使わず、関数のみで処理できるとありがたいです。
(例)
シート1:
会社名 購入物 値段
ABC ペン 200
あいう けしごむ 300
シート2:
会社名 購入物 値段
シート3:
会社名 購入物 値段
(1行空)
かきく けしごむ 300
↓最終形態
合算シート:
会社名 購入物 値段
ABC ペン 200
あいう けしごむ 300
かきく けしごむ 300
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
> マクロは使わず、関数のみで処理できるとありがたいです。
1シートずつ IFERROR込みの数式を作って それらを30個「&」で
繋げば「関数のみで処理」できます。「関数のみで処理」することに
何のメリットがあるのかは分かりませんが……
計算に使うのなら同じ種類のデータを分けてはいけませんね。関数で
何とかしたいと思っているなら猶更です。入力データは一元管理が大
前提ですよ。
ご回答いただきありがとうございます。
Excelの操作になれていないスタッフが多いので、マクロを使ってしまうと、
修正が必要な時、自分しか対応できなくなってしまうことを防ぎたかったため、なるべく関数でとご依頼させていただきました。
複数の会社からデータが送られてくるのですが、一元管理できるような仕組みも考えてみたいと思います。
ありがとうございました。
No.2
- 回答日時:
こんにちは!
No.1さんもおっしゃっているように、30シートの操作を関数で!
となると相当の労力が必要なのでは?
(できるかどうかは別として・・・)
そのような気力はないので、手っ取り早くお望みでないVBAでの一例です。
興味があれば試してみてください。
尚、各シートとも1行目が項目行で項目数は同じだとします。
そして「合算シート」の1行目項目名は入力済みだという前提です。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() '//この行から//
Dim k As Long, lastRow As Long, lastCol As Long
Dim myRng As Range, wS As Worksheet
With Worksheets("合算シート")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
lastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
If lastRow > 1 Then
Range(.Cells(2, "A"), .Cells(lastRow, lastCol)).ClearContents
End If
For k = 1 To Worksheets.Count
If Worksheets(k).Name <> .Name Then
Set wS = Worksheets(k)
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(wS.Cells(2, "A"), wS.Cells(lastRow, lastCol)).Copy .Cells(Rows.Count, "A").End(xlUp).Offset(1)
End If
End If
Next k
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
Set myRng = Range(.Cells(2, "A"), .Cells(lastRow, "A")).SpecialCells(xlCellTypeBlanks)
If Not myRng Is Nothing Then
myRng.EntireRow.Delete
End If
.Activate
End With
MsgBox "完了"
End Sub '//この行まで//
※ 関数でないので、データ変更があるたびに
マクロを実行する必要があります。m(_ _)m
ご回答ありがとうございます。
数式ならなんとか理解できる人が多いため、修正が発生した際、
自分しか対応できなくなることを防ぐため、数式のみでご依頼させていただきました。
VBAありがとうございます。
こちら、サンプルデータで使ってみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) VBAを使いシート間で貼り付け 3 2023/03/14 20:53
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) エクセルで指定範囲にある名前と重複した場合に入力できないようにしたい 1 2023/07/13 09:58
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのVBAで集計をしたい
-
【マクロ】【相談】Excelブック...
-
コマンドボタンがデザインモー...
-
エクセルを開いたとき常に同じ...
-
【 Excel】シートの見出しに自...
-
EXCELでマクロを使わずに図形の...
-
Excel:複数シートから条件に合...
-
マクロを複数シートに実行する...
-
EXCELでワークシートを開いたら...
-
エクセルでシートの並び替えで...
-
EXCELの起動時に常に同じ...
-
VBAで条件によってシート見出し...
-
EXCEL起動と同時にワークシート...
-
エクセルのチェックボックス
-
エクセルで複数のSheetを一括フ...
-
ExcelのSheetに作られたMacro1...
-
エクセル・複数のシートを一度...
-
Excelのマクロの呼び出し元を知...
-
EXCELのエラー
-
【Excel】複数あるシート上の住...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
エクセルのVBAで集計をしたい
-
エクセルを開いたとき常に同じ...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
Excelのマクロの呼び出し元を知...
-
EXCELでマクロを使わずに図形の...
-
マクロ 各シートの決められた位...
-
エクセルでシートの並び替えで...
-
EXCELのエラー
-
EXCELでワークシートを開いたら...
-
メッセージボックスでシート名...
-
マクロを特定の複数シートで実...
-
VBA シート名を先月の名前に...
-
マクロで複数シートに条件付き...
-
エクセルで、マクロボタンの表...
-
VBAで条件によってシート見出し...
-
【Excel】複数あるシート上の住...
-
エクセルVBAでcmbBoxのプロパテ...
-
エクセルのチェックボックス
おすすめ情報