【コイン250枚】VBA詳しい方、至急教えてください。 ①ブック名が月ごとであるため集計するブック(一覧)は任意で選択したいです。

画像

Visual Basic | Excel272閲覧xmlns="http://www.w3.org/2000/svg">250

ベストアンサー

1

1人がナイス!しています

ThanksImg質問者からのお礼コメント

すみません。解決しました。 ありがとうございました。

お礼日時:1/17 15:52

その他の回答(3件)

1

各月毎のブック「12月」のシート「一覧」から按分のブックのシート「按分」に各都市の金額を読み込むとのことでいいのですよね。 このような方法もあります。 但し、読込元のブック名、及びシート名の書込みが必要となります。 どのセルでも良いのですが、今回は1,2行を挿入して、B1、B2に書き込むようにしています。 プログラムは、以下の通りです。 Sub 按分_ボタン3_Click() With Workbooks(Cells(1, 2).Value).Worksheets(Cells(2, 2).Value) For n0 = 2 To 1000 If .Cells(n0, 3).Value = "" Then Exit For Else For n1 = 3 To 1000 If Cells(3, n1).Value = "" Then Exit For ElseIf Cells(3, n1).Value = .Cells(n0, 3).Value Then Cells(5, n1).Value = .Cells(n0, 7).Value Exit For End If Next End If Next End With End Sub

画像

1人がナイス!しています

1

VBAではないのですが… 関数でもできなくはないので… 別解を走り書きしておきます。 おおまかな流れ 1.按分.xlsxに別ブックを参照させる作業シートを追加 2.作業シートを元に按分シートの3行目黄色いセルにINDEXとMATCで経費名&所属を完全一致したものを抽出 1.按分.xlsxに別ブックを参照させる作業シートを追加 ①按分.xlsxに作業シートを追加 ②作業シートのA1セルに12月.xlsxと記入 ※以降、任意のbookを開き、A1セルのブック名を任意のブック名にするとbookのデータを取得する ③作業シートのA2セルに以降の式 =INDIRECT("[" &$A$1 & "]" &"一覧!" & "R"&ROW(A1)&"C"&COLUMN(A1),FALSE) 左右上下にオートフィル 作業シート完成

画像

1人がナイス!しています

2.作業シートを元に按分シートの3行目黄色いセルにINDEXとMATCで経費名&所属を完全一致したものを抽出 ①按分シートのC3セルに =IFERROR(INDEX(作業シート!$A$2:$G$100,MATCH(按分!$A$1&按分!C1,作業シート!$A$2:$A$100&作業シート!$C$2:$C$100,0),7),0) ※作業シートで空欄が0になるのを空欄にしたい場合 セルの書式設定→ユーザー定義→種類を手打ちで # にしてOK

画像
0

なぜブックに分ける必要があるのでしょうか? まず、一つのブックの1枚のシートに 全部署、全月のデーターを集計しておきます。 これがデーターベースです。 このデーターベースがあれば、別シートに。月を指定すれば その月のデーターだけをだせます。月別の12枚のシートはいりません 1枚のシートで、12か月分の月ごとのシートが見れます。 また別のシートに、部署名を指定すれば、その部署だけの、年間のシートがだせます。 また経費名を指定すれば その経費だけの全部署、年間のデーターが見れます。 全部署、1年間の計画のデーターベースと、日々の実行の経費明細のシートこれも、1年間全部、全部署のデーターベースがあれば、 二つのシートを突き合わせて、計画と実績を付き合わてみることも、 簡単にできます。 データーを 複数のブック、複数のシートに分けることは、デメリットが多すぎます。 データーはできるだけ、集約して、データーベースにするべき。 そのデーターベースのなかから、見たいデーターだけを 抽出してみるようにすべきです。

一覧にする人と集計する人が違うからです。 メールで複数人がやり取りします。 申し訳ないのですが「べき論」を質問したわけではありません…。