[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別のデータを打ち込まず移したい』(からし)
エクセル初心者です。
1列目に都道府県2列目に商品名3列目に数量が記入してあるシートがあります。
もう一つのシートも同様で、都道府県、商品名の順番はそれぞれ違い、都道府県が違くても商品名が被っているものもがあります。
移したい先のシートに含まれてない商品もあります。
1つ1つ打ち込まず数量のデータを移したいのですが、やり方がわかりません。
また、移したい先のシートに含まれない商品は「その他」欄に数量を移すのですが、
「その他」に該当する商品も分かるようにしたいです。
拙い説明で申し訳ありませんが、ご教授願います。
< 使用 Excel:Excel2016、使用 OS:unknown >
また、「その他」に該当する商品について、ご自身が判定するときはどうしているのですか?
(「その他」に該当する商品のリストがあったり、商品名に゛他゛とついていたりしませんか?)
(もこな2) 2018/10/04(木) 08:28
>>[1列目に都道府県2列目に商品名3列目に数量が記入してあるシートがあります。] に基づくレイアウト予想サンプル
^^;
A B C 1 地域 商品 数量 2 北海道 A 100 3 東京 B 20 4 アメリカ C 30 5 九州 D 200
のような感じで。。。もこな2さんも 確認されていますが。 「もう一つのシート」のレイアウト。 完成予想表のレイアウト。 シート名。 「含む」,「その他」の詳細など、 もう少し具体的に教えていただけると、多数回答があるかもです。 2018/10/04 9:30 商品名修正 ^^;
(隠居じーさん) 2018/10/04(木) 09:24
元データシート
1 地域 商品 数量 2 北海道 B 100 A 20 3 東京 B 20 X 50 4 アメリカ C 30 B 50 5 九州 D 200 移したい先のシート A B C 1 地域 商品 数量 2 北海道 A 20 B 100 3 東京 B 20 4 アメリカ B 50 C 30
5 九州 D 200 6 その他 50
みたいにしたいんです。東京のXがこの場合
移したい先のシートに該当しない商品のためその他にいれます。
商品の順番も統一されてないです。
伝わりますでしょうか、よろしくお願いします。
(からし) 2018/10/04(木) 12:04
VBA。。。なにかの参考にでも。。。ならないかもですが きっともっとスマートなコードがあると思いますです。 Worksheets("Sheet1")。。。元シート Worksheets("Sheet2")。。。移したいシート
単に商品が違えば追加するだけです。 同じ商品とか、累計とか。。。対応していません。 例によってバックアップは必須です。
^^;
Option Explicit Sub main() Dim sh01 As Worksheet Dim i As Long, j As Long, buf, D, D2, mflg As Boolean Set D = CreateObject("Scripting.Dictionary") Set D2 = CreateObject("Scripting.Dictionary") Set sh01 = Worksheets("Sheet1") With Worksheets("Sheet2") For i = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row D(.Cells(i, 2).Value) = "" Next For i = 2 To sh01.Cells(sh01.Rows.Count, 2).End(xlUp).Row For Each buf In D.keys If buf = sh01.Cells(i, 2) Then mflg = True Exit For End If Next If mflg = False Then D2(j) = Array("その他", sh01.Cells(i, 2), sh01.Cells(i, 3)) j = j + 1 End If mflg = False Next i = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 For Each buf In D2.Items .Cells(i, 1).Resize(1, 3) = buf i = i + 1 Next End With End Sub
(隠居じーさん) 2018/10/04(木) 14:56
【元データシート】
______A_________B_______C______ 1 地域 商品 数量 2 北海道 B 100 A 20 3 東京 B 20 X 50 4 アメリカ C 30 B 50 5 九州 D 200
これをみると、たとえばB2セルって「B(セル内改行)A」っていう文字列が入ってるという説明になってますがホントです?
できなくは無いとおもいますが、ハードル結構あがちゃうような。
そうでは無くて↓のように、A2〜A3がセル結合されていて・・・というような状況であれば、マクロを使って変換することは比較的楽にできるとおもいます。
【元データシート(変換前)】
______A_________B_______C______ 1 地域 商品 数量 2 北海道 B 100 3 A 20 4 東京 B 20 5 X 50 6 アメリカ C 30 7 B 50 8 九州 D 200
↓マクロで変換
【元データシート(変換後)】
______A_________B_______C______ 1 地域 商品 数量 2 北海道 B 100 3 北海道 A 20 4 東京 B 20 5 東京 X 50 6 アメリカ C 30 7 アメリカ B 50 8 九州 D 200
そして、元データシート(変換後)のようにデータが並んでいるのであれば、SUMIFS関数で、
=SUMIFS(Sheet1!C:C,Sheet1!A:A,A2,Sheet1!B:B,B2)
のような数式を使えば、A列とB列の値を条件にシート1のC列の合計値を導くことができるとおもいますが、如何でしょうか。
(もこな2) 2018/10/04(木) 19:32
もこな2さん こんばんわ ^^ @@; 気が付きませんでしたがたしかに左端の振り番号から推測すると そぉいうことなのかもしれませんね。。。 からし さん の ご返信をお待ちしますが また私のいさみあしかもですね。。。。。。とほほ 〜 A^_^;
(隠居じーさん) 2018/10/04(木) 23:05
説明不足で元データ表も変換後の形式のシートです。
もこな2さんのSUMIF関数がハマりそうなので
使わせて頂きます!
お二人ありがとうございました!
(からし) 2018/10/05(金) 07:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.