お世話になっております。
分かりづらいですが、イメージとしてはこのような感じの表を作りたいのです
(数の計算列、セルの色塗りは不要です)
http://fast-uploader.com/file/6972978179745/
表1、表2の行数は可変です。(空欄の場合もあります)
表2の所属コードは必ず表1にもあります。
自分の知識では考えても形にならず、どうか知恵をお借りできないでしょうか
No.4ベストアンサー
- 回答日時:
こんばんは!
やはりVBAでやってみました。
すでに的確な回答が出ていますので、参考程度で・・・
>(空欄の場合もあります)
が少し引っかかりますので、途中に空白セルがあっても対応できるようにしています。
↓の画像のようにSheet1が「表1」・Sheet2が「表2」として、Sheet3に表示するようにしてみました。
標準モジュールにコピー&ペーストしてマクロを実行してみてください。
Sub Sample1()
Dim i As Long, k As Long, lastRow As Long
Dim c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
With Worksheets("Sheet3")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(.Cells(2, "A"), .Cells(lastRow, "C")).ClearContents
End If
For i = 2 To wS1.Cells(Rows.Count, "A").End(xlUp).Row
If wS1.Cells(i, "B") <> "" Then
Set c = wS2.Range("A:A").Find(what:=wS1.Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
k = c.Row
Do While wS2.Cells(k, "A") <> "" And wS2.Cells(k, "A") = c
With .Cells(Rows.Count, "A").End(xlUp).Offset(1)
.Value = c
.Offset(, 1) = wS2.Cells(k, "B")
.Offset(, 2) = wS1.Cells(i, "C") * wS2.Cells(k, "C")
End With
k = k + 1
Loop
End If
End If
Next i
Application.ScreenUpdating = True
.Activate
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.3
- 回答日時:
こんばんは。
イメージとしてはこんな感じかな(^^;
>(空欄の場合もあります)
ここが分かりませんが、後は考えてください。
それから、VBAで解決するのが良いのか、関数で解決するのかも、私には見当が付きません。
'//
Sub Test1()
Dim c As Variant
Dim r As Variant
Dim i As Long
i = 4 '最初の行数
For Each c In Range("A4", Cells(Rows.Count, 1).End(xlUp))
If IsNumeric(c.Offset(, 1).Value) Then
For Each r In Range("E4", Cells(Rows.Count, 5).End(xlUp))
If c.Offset(, 1).Value = r.Value Then
Cells(i, 9).Value = r.Value
Cells(i, 10).Value = r.Offset(, 1).Value
Cells(i, 11).Value = r.Offset(, 2).Value * c.Offset(, 2).Value
i = i + 1
End If
Next r
End If
Next c
End Sub
'//
回答、ありがとうございます。
このような簡潔なコードで解決できるのですね
あてはめてみるとエラーがでてしまいましたが
いい機会ですのでこのコードを使っても動作できるよう考えてみます
No.1
- 回答日時:
データ(項目)が足りないのでどうやってもできませんよ。
表1と表2を結びつけるのは「所属コード」しかないんですが、
これがユニーク(単一)ではないですから。「所属コード」が
「10000」と言った場合、「リンゴ1」「リンゴ2」「リンゴ3」の
どれかが分かりませんもん。
ですので、「リンゴ1」「リンゴ2」「リンゴ3」を区分できる何等か
の項目を追加しないといけません。
追加が出来れば、あとは=Vlookup関数だけの話です。
回答、ありがとうございます。
説明を省いてしまって申し訳ありません
りんご1~3がどれなのかは実は必要ないのです。
もう少し情報があれば関数だけでも可能なのですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAで上の表の最下行を求める 4 2022/09/14 15:22
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- Excel(エクセル) 判定結果に応じて〇印(図形)をつけるマクロ 4 2022/10/30 11:22
- Excel(エクセル) エクセルでフィルタ後の列の重複を回避したい 6 2022/10/13 12:50
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) エクセルのSUM関数について 4 2023/04/18 10:37
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワポの複数ページにまたがる...
-
表と票の違いは?
-
WORDの表がいきなり改ページさ...
-
ワードの表の行が広がってしまう
-
Word2016の表で困っています。
-
ワードの表の列幅を文字ぎりぎ...
-
ワードの表がくっついてしまいます
-
wordで表を挿入した後に表の前...
-
Wordで表を作ったら右下に四角...
-
ワードで表を作ってから、その...
-
[Word]表のタイトル(番号/総数...
-
エクセル・一部分のみ行高さ変更
-
ワード、上下中央揃えにしたい...
-
エクセルで3次元の表を作りたい
-
[Excel] 以下のような、行が...
-
ワードで空白、行を維持したま...
-
エクセルでセルの幅が違う2つ...
-
ワードで「文字」「表」と横に...
-
ワードの表が重なってしまう。
-
MS Word 表のタイトル行が表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワポの複数ページにまたがる...
-
ワードの表の行が広がってしまう
-
ワードの表の列幅を文字ぎりぎ...
-
表と票の違いは?
-
Word2016の表で困っています。
-
ワードの表がくっついてしまいます
-
Wordで表を作ったら右下に四角...
-
wordで表を挿入した後に表の前...
-
ワード、上下中央揃えにしたい...
-
WORDの表がいきなり改ページさ...
-
エクセルで3次元の表を作りたい
-
ワードの表体裁が壊れる
-
ワードの表が重なってしまう。
-
ワードで空白、行を維持したま...
-
Excelについて質問です。 表の...
-
ワード横書き2段、左に英語、...
-
エクセルで空行を印刷しない方法
-
wordで 次のページに同じ表(レ...
-
Wordの表の列の高さを固定する...
-
Wordの表をWebレイアウトにする...
おすすめ情報