[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『並べ替えの方法を教えてください』(枕カバー)
Office Personal 2021のエクセルを使用しています。かなりの初心者です。
例えばエクセルのタブ1で↓を入力したとして、
A B C
1行目 3/17 トマト 600円
2行目 1/14 豚バラ 100円
3行目 12/11 玉ねぎ 200円
4行目 3/5 もやし 50円
タブ2で↓を入力したとします。
A B C
1行目 12/11 玉ねぎ 200円
2行目 3/5 もやし 50円
3行目 3/17 トマト 600円
4行目 1/14 豚バラ 100円
タブ1も2と同じように並べ替える方法はありますか?
いままで行切り取り→貼り付けして並べ替えていましたが、こんな感じのが2000行ほどあるのでなにか方法があれば教えて欲しいです。
なお、入力するものに日付や金額など規則性はありません。
ただタブ2と同じように並べ替えたいだけです。
よろしくお願いいたします。
< 使用 Excel:Excel2021、使用 OS:Windows10 >
=sheet2!A1
必要分コピー
(シート名は本物の名前に直してください)
(てきとうです) 2023/03/17(金) 14:30:47
タブがシートのことでいいのかしら? 別々に入力したものを、シート2に合わせて、シート1を並べ替えを行いたいってことですか? (稲葉) 2023/03/17(金) 14:31:48
D列以降の情報も丸々合わせて並べ替えをしたいです。
あとタブはシートです。わかりづらくて本当にすみません……
(枕カバー) 2023/03/17(金) 14:39:46
シート1に入力されているデータと対応するものがシート2には必ずあるのだろうか? (ねむねむ) 2023/03/17(金) 14:42:22
シート2 D1=A1&"_"&B1&"_"&C1 と入力して下方向にコピー |[A] |[B] |[C] |[D] [1]|12月11日|玉ねぎ|200円|45271_玉ねぎ_200円 [2]|3月5日 |もやし|50円 |44990_もやし_50円 [3]|3月17日 |トマト|600円|45002_トマト_600円 [4]|1月14日 |豚バラ|100円|44940_豚バラ_100円
シート1 F1=MATCH(A1&"_"&B1&"_"&C1,シート2!D:D,0) と入力して下方向にコピー
|[A] |[B] |[C] |[D] |[E] |[F] [1]|3月17日 |トマト|600円|○○スーパー|家から1km | 3 [2]|1月14日 |豚バラ|100円|八百屋 |家から200m | 4 [3]|12月11日|玉ねぎ|200円|××スーパー|家から電車1駅| 1 [4]|3月5日 |もやし|50円 |デパ地下 |家から電車5駅| 2
シート1をA:F列全体を選択し、並び替え>F列で昇順 並び替え後 |[A] |[B] |[C] |[D] |[E] |[F] [1]|12月11日|玉ねぎ|200円|××スーパー|家から電車1駅| 1 [2]|3月5日 |もやし|50円 |デパ地下 |家から電車5駅| 2 [3]|3月17日 |トマト|600円|○○スーパー|家から1km | 3 [4]|1月14日 |豚バラ|100円|八百屋 |家から200m | 4
これでいいのかしら? (稲葉) 2023/03/17(金) 14:44:28
Sheet1
|[A] |[B] |[C]|[D] |[E] [1]|3月17日 |トマト|600|Aスーパー|家から1km [2]|1月14日 |豚バラ|100|八百屋 |家から200m [3]|12月11日|玉ねぎ|200|Bスーパー|家から電車1駅 [4]|3月5日 |もやし| 50|デバ地下 |家から電車5駅
Sheet2
|[A] |[B] |[C]|[D] |[E] [1]|12月11日|玉ねぎ|200|Bスーパー|家から電車1駅 [2]|3月5日 |もやし| 50|デバ地下 |家から電車5駅 [3]|3月17日 |トマト|600|Aスーパー|家から1km [4]|1月14日 |豚バラ|100|八百屋 |家から200m
'---------------------------------------------------
Sheet2 F1=A1&B1&C1&D1&E1 と入力して下方向にコピー
|[A] |[B] |[C]|[D] |[E] |[F] [1]|12月11日|玉ねぎ|200|Bスーパー|家から電車1駅|=A1&B1&C1&D1&E1 [2]|3月5日 |もやし| 50|デバ地下 |家から電車5駅|=A2&B2&C2&D2&E2 [3]|3月17日 |トマト|600|Aスーパー|家から1km |=A3&B3&C3&D3&E3 [4]|1月14日 |豚バラ|100|八百屋 |家から200m |=A4&B4&C4&D4&E4
Sheet1 =MATCH(A1&B1&C1&D1&E1,Sheet2!F:F,0) と入力して下方向にコピー
|[A] |[B] |[C]|[D] |[E] |[F] [1]|3月17日 |トマト|600|Aスーパー|家から1km |=MATCH(A1&B1&C1&D1&E1,Sheet2!F:F,0) [2]|1月14日 |豚バラ|100|八百屋 |家から200m |=MATCH(A2&B2&C2&D2&E2,Sheet2!F:F,0) [3]|12月11日|玉ねぎ|200|Bスーパー|家から電車1駅|=MATCH(A3&B3&C3&D3&E3,Sheet2!F:F,0) [4]|3月5日 |もやし| 50|デバ地下 |家から電車5駅|=MATCH(A4&B4&C4&D4&E4,Sheet2!F:F,0)
Sheet1をA:F列全体を選択し、並び替え>F列で昇順で並び替えを実施
'---------------------------------------
(訂正) 2023/03/17(金) 15:25:48
長すぎるせいでしょうか……?
(枕カバー) 2023/03/17(金) 15:41:53
全部一致してないとだめなデータなんですか? そうでなければ、最初に提示したA〜C列の必要最小限だけ文字列つなげばいいのでは。
(稲葉) 2023/03/17(金) 15:59:36
横から失礼します。 提示のデータは多分本来のデータとは違う内容なのでしょうけれど、 Sheet2はマスタ的なものでしょうか?
Sheet1をSheet2と全く同じ並び順にしたい目的は何ですか? そのあたりを説明されると、何か良い案が出てくるかもしれません。 (めいぷる) 2023/03/17(金) 16:19:08
上司はそのやり方を知ってるんだろうから、まず聞いてみては・・・? シート1から住所だけ抜くならVLOOKUPでいかがでしょう? https://dekiru.net/article/21009/
シート2の並べ替えは本当に全部の項目で一致する必要あります? シート1にあって、シート2に無い項目があるんじゃないですか? 住所とか。
(稲葉) 2023/03/17(金) 16:47:03
.Columns("A:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Set rg = .Range("A1:B1") rw = .Range("C" & Rows.Count).End(xlUp).Row rg.Value = Array("=CONCAT(Sheet2!RC:RC[2])", "=MATCH(CONCAT(RC[1]:RC[3]),C[-1],0)") rg.AutoFill Destination:=.Range("A1:B" & rw), Type:=xlFillDefault .Range("A1:B" & rw).Value = .Range("A1:B" & rw).Value .Columns.Sort key1:=.Range("B1"), Order1:=xlAscending .Columns("A:B").Delete Shift:=xlToLeft End With End Sub (mm) 2023/03/17(金) 16:57:11
シート1にあって、シート2に無い項目があるんじゃないですか? 住所とか。 ↑がよくわからないのですが、やりたいのはシート2の不足している情報からシート1の完全な情報を抜き出したいんです。またシート2の順番通りに並び替えて提出する必要があります。
それからコードを書いていただいた方すみません、本当に初心者なもので書いてあることが読み取れずどう実際のエクセルに反映して直せばいいか分かりません……。
(枕カバー) 2023/03/17(金) 17:05:06
>シート1は顧客依頼情報で、依頼が来た順にエクセルに入れていきます。住所・名前・依頼内容等1人に対し40個あり、規則性はありません。 >シート2が今月請求に回す顧客依頼情報です。
例示のデータは買い物内容のようなデータなので分かりづらいのですが、 シート2の顧客依頼情報1件に対してシート1のデータも1件なのでしょうか。(1対1) どの項目がKEYになるかが分かれば、稲葉さんのおっしゃるようにシート2にVLOOKUP(あるいはXLOOHUP)の関数を入れるだけで良いように思いますが、 現状の説明ではそのあたりがいまいち分からないですね。
(めいぷる) 2023/03/17(金) 17:15:21
(ちゃちゃ) 2023/03/17(金) 17:21:38
(枕カバー) 2023/03/17(金) 17:24:33
>シート1は >管理NO 受付日 住所 名前 電話番号 依頼内容 担当者 請求額 備考 依頼区分 その他ですね。 >シート2は >今回の請求順序 管理NO(不規則、昇順等ではない) 名前 依頼完了日 請求額 支払日 等々です。
シート2の項目のうち、上司から貰うときに入力されている項目はどれですか? また、管理No.は一意ですか?
(めいぷる) 2023/03/17(金) 17:36:56
シート1と2の管理Noは合ってるんじゃ? シート1がこうだとして、 L2=VLOOKUP(A2,Sheet2!B:I,8,0) 下にコピー(この時点ではエラーのはず) |[A] |[B] |[C] |[D] |[E] |[F] |[G] |[H] |[I] |[J] |[K] |[L] [1]|管理NO|受付日 |住所 |名前 |電話番号|依頼内容|担当者|請求額|備考 |依頼区分|その他|並べ替えキー [2]| 1|2023/12/11|××スーパー|玉ねぎ| | |A |200円 |家から電車1駅| | | 4 [3]| 2|2023/3/5 |デパ地下 |もやし| | |B |50円 |家から電車5駅| | | 5 [4]| 3|2023/3/17 |○○スーパー|トマト| | |C |600円 |家から1km | | | 2 [5]| 4|2023/1/14 |八百屋 |豚バラ| | |D |100円 |家から200m | | | 3
シート2がこうだとして、 H2=VLOOKUP(B2,Sheet1!A:C,3,0) I2=ROW() それぞれ下にコピー
|[A] |[B] |[C] |[D] |[E] |[F] |[G] |[H] |[I] [1]|請求順序|管理NO|名前 |依頼完了日|請求額|支払日|等々|住所 |並べ替えキー [2]| | 3|トマト| | | | |○○スーパー| 2 [3]| | 4|豚バラ| | | | |八百屋 | 3 [4]| | 1|玉ねぎ| | | | |××スーパー| 4 [5]| | 2|もやし| | | | |デパ地下 | 5
んでシート1の並べ替えキーで並べ替えれば 同じ並び順になる。 |[A] |[B] |[C] |[D] |[E] |[F] |[G] |[H] |[I] |[J] |[K] |[L] [1]|管理NO|受付日 |住所 |名前 |電話番号|依頼内容|担当者|請求額|備考 |依頼区分|その他|並べ替えキー [2]| 3|2023/3/17 |○○スーパー|トマト| | |C |600円 |家から1km | | | 2 [3]| 4|2023/1/14 |八百屋 |豚バラ| | |D |100円 |家から200m | | | 3 [4]| 1|2023/12/11|××スーパー|玉ねぎ| | |A |200円 |家から電車1駅| | | 4 [5]| 2|2023/3/5 |デパ地下 |もやし| | |B |50円 |家から電車5駅| | | 5
これで伝わらなければ、私には手に負えないのでおさらばです・・・ (稲葉) 2023/03/17(金) 17:38:34
並べ替えをしたいのはシート1の方ですよね。 そして並べ替える目的は、シート2に必要な項目をシート1からコピペするため。
>シート2がこうだとして、 >H2=VLOOKUP(B2,Sheet1!A:C,3,0)
これで必要な項目の内容が取れれば、シート1を並べ替える必要は無いのでは? 場合によってはVLOOKUPよりXLOOKUPの方が使いやすいかもしれません。
(めいぷる) 2023/03/17(金) 18:15:13
>またシート2の順番通りに提出する必要があります。 >(枕カバー) 2023/03/17(金) 16:28:05
らしいっす。 会社ルールならしゃーない。
パワークエリで、1シート出力がよさそうなんだけどねぇ。 (稲葉) 2023/03/17(金) 18:27:52
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.