
あるお客さんから、添付画像のように注文が入ります。
納期が早いものから手配をかけるのですが、これだと見落としてしまうため、
納期順に並べ替えたいです。
ネックなのは納入日が2回以上の場合、添付画像のように列に追加されるので一発での並び替えが出来ません。
この元データ自体はお客さんのシステムの都合上、変えることが出来ません。
毎月1回このデータで注文がきます。
今、個人的に考えているのは
自分用にExcelを作成し、お客さんからきたExcelのシートを丸ごとコピーしたのち、
自分用Excelのsheet1(仮)にペーストすると、sheet2(仮)で日付順に並び替えたものが表示されるような方法がよいかと考えております。
得意な方いらっしゃいましたら、どうかご教示ください。

No.9ベストアンサー
- 回答日時:
No7です。
補足ありがとうございました。マクロを提供する予定ですが、マクロを使用したことがないということですので、
まず、あなたのexcelの環境がマクロを実行可能な状態にする必要があります。
1.下記URLを参考にして、マクロを有効にしてください。
https://cad-kenkyujo.com/excel-macro-yuukou/
の
「エクセルでマクロを有効にする基本手順」か
「異なるバージョンのExcelでの設定方法」
を見て設定してください。
2.下記URLを参考にして、マクロを登録し、実行する方法を取得してください。
「Excel VBA入門」
https://www.javadrive.jp/excelvba/
の1章 VBA基礎知識の
Visual Basic Editorを起動する
Visual Basic Editorの画面構成
VBAプログラムの作成と実行
VBAプログラムをマクロ有効ブックとして保存する
まで、理解できれば完了です。
3.サンプルマクロの実行
以下のマクロをコピペして、標準モジュールに登録し、実行してください。
添付図のようなメッセージボックスが表示されればOKです。
Public Sub サンプルマクロ()
MsgBox ("これはサンプルマクロです")
End Sub
上記で、マクロの実行環境が整いました。
4.以下のシートを作成してください。
Sheet1:あなたが提示した、「お客さんからのシート」をコピペしたもの
Sheet2:空のシート
Sheet1、Sheet2は仮の名称ということでしたので、もし、Sheet1,Sheet2をほかのシート名に
した場合は、その旨、補足してください。その場合は、Sheet1,Sheet2ではなく、
そのシート名で動作するマクロにします。
上記の1、2,3,4が完了しましたら、その旨補足してください。

NO.7様 ありがとうございます。
マクロの設定を行なった際、PCのセキュリティソフトと相性が良くなかったようでやや設定に手古摺ってしまい、上司からこれ以上はセキュリティ的に怖いからNGと言われて進めなくなってしまいました。
PCやマクロの知識がしっかりある人がいればよかったのですが、初心者の集まりの組織のため、継続不可の着地となってしまいました。
お願いした上で、途中で断念する形になってしまい、大変申し訳ございません。
しかし、個人的には非常に勉強になりました。
出来る事ならこのまま進めてマクロを構築してみたかったです…
中断する形で恐れ入りますが、私に新たにマクロの存在を強く教えてくださったNO.7様をBAとさせていただきます。
ご協力いただいた方にも感謝の気持ちでいっぱいです。
ありがとうございました。
No.8
- 回答日時:
No6です。
>一旦一列にずらっと並ぶまでは自力で何とかできました…!
>が、やはりその後の並び替えで苦戦中です。
並べ替えができているのなら、あとは簡単です。
仮に、補足にご提示のような形式でB:E列に全データを並べてあるとして、
1)手動で行う方法(No3様の方法です)
B:E列をB列を基準にして昇順に並べ替えれば良いです。
(リボンの「データ」-「並べ替え」でキー列にC列を指定すればよい)
上記で、日付が空白セルの行は下方に入れ替えられます。
2)関数で行う方法
データを表示したいセル(例:G2セル)に
=SORT(FILTER(B:E,ISNUMBER(C:C),{"",""}),2)
の式を入力すれば済みます。
(スピル機能が使えるものと仮定)
※ 上式のままだと、E列の備考欄が空白のセルは「0」と表示されます。
(エクセルの関数の仕様)
空白表示にしたい場合には、もう少し工夫が必要ですけれど。
No.7
- 回答日時:
マクロでなら、あなたが期待される結果をSheet2へ出力することが可能です。
そのマクロを提示することは可能ですので、もし、マクロを希望される場合は、その旨補足してください。一点、気になるのは、1月の日付です。人間が判断した場合は、翌年(2025年)であることが、推測可能ですが、本当に、2025年になってますか。
現在が2024年なので、1月20日と入力すると、通常は、2024年1月20日になります。
添付図のように日付のセル(添付図のF2)を選択すると、上部の赤線で囲んだところに2025/1/10のように年月日が表示されます。
そのようにして確認を行ってください。
2025年であれば、問題ありませんが、2024年の場合は、正しく並べ変えることができなくなります。そのため、1月の日付は、全て2025年に手作業であなたが修正しておく必要があります。
それは、可能でしょうか。可能であれば、マクロを提供できます。

ご丁寧にありがとうございます。
大変勉強になります。
マクロは使用した事がなく、全くの初心者で大変恐縮ですが
ご教授ご鞭撻のほど戴けますと大変助かります。
また、日付についてですが可能です。
確かに現在は2024年の1月扱いとなっておりますが調整可能であります。
No.6
- 回答日時:
こんばんは
直接処理するのはそれなりに面倒なので、一旦、作業列に関数等で縦3列に全部を並べ替えて、それを元に処理を行った方が考えやすくなります。
あるいは、マクロで処理をしてしまった方が更に簡単とも言えます。
とは言いながら、関数での例を以下に。
ご提示のデータレイアウトを仮定して、例えばN2セルに以下の式を入力すれば、並び替えた結果が下方にスピルされます。
※ シート内の日付は、全てシリアル値であるものと仮定しました。
スピル機能を使えるバージョンを想定しています。
(旧いバージョンでは動作しません。)
データの行範囲は最大99行目迄に仮設定してあります。
=SORT(FILTER(VSTACK(HSTACK(B2:B99,D2:E99,L2:L99&""),HSTACK(B2:B99,F2:G99,L2:L99&""),HSTACK(B2:B99,H2:I99,L2:L99&""),HSTACK(B2:B99,J2:K99,L2:L99&"")),ISNUMBER(VSTACK(D2:D99,F2:F99,H2:H99,J2:J99)),{"",""}),2)
ご丁寧にありがとうございます。
大変勉強になります。
>>直接処理するのはそれなりに面倒なので、一旦、作業列に関数等で縦3列に全部を並べ替えて、それを元に処理を行った方が考えやすくなります
仰る通りですね。一旦一列にずらっと並ぶまでは自力で何とかできました…!
が、やはりその後の並び替えで苦戦中です。
関数での例までありがとうございました。
一度、Excelに挿入してみて、どうなるか見てみたのですが
初心者にはさっぱりで…お恥ずかしい限りです
時間をかけて紐解けたらいいなと思います
ありがとうございました
No.3
- 回答日時:
品目が10だとして、Sheet2のA,B,C列の最初の10行にSheet1のB,D,E列、次の10行にB,F,G列、...といったようにすべての品名-納入日-数量の組み合わせが入るよう計算式を入れます。
それを丸ごとコピーしてSheet3に貼り付けて納入日でソートすればいいでしょう。(本当はマクロでやれば簡単なのですが)
ご丁寧にありがとうございます。
そうなるとsheet3にて、空欄のある品目が大量に上部にきてしまいます。
(スクロールすればよいのですが…)
「納入日」の横が空欄だった場合、並び替えをしないまたは非表示にする
という関数があれば…と思っています。
マクロはさっぱりわからず…
しかし、調べてみたら確実な方法に感じました。
教えてくださってありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelで並べ替えをするとおかしくなります。
Excel(エクセル)
-
Excel いい方法教えてください。
Excel(エクセル)
-
エクセルの数式について教えてください。
Excel(エクセル)
-
-
4
Excelのデータの入力規則の問題点について
Excel(エクセル)
-
5
エクセルで作れる簡単なスケジュール表(日程管理)、有りますか?
Excel(エクセル)
-
6
8:40までの出勤は全て8:30にする関数を教えて下さい!!
Excel(エクセル)
-
7
エクセル初心者です 用語とか良く分からないので簡単に説明していただけると幸いです 表を作っているので
Excel(エクセル)
-
8
エクセルで、数字の下4桁の0を削除する関数
Excel(エクセル)
-
9
エクセルの数式が分かりません
Excel(エクセル)
-
10
Excelで合計を求めたいです
Excel(エクセル)
-
11
エクセルで、数字ではない値(文字列)が入った場合の計算式を教えてください。
Excel(エクセル)
-
12
Excelの罫線を消す方法
Excel(エクセル)
-
13
関数を教えて下さい
Excel(エクセル)
-
14
文字列1文字列2"文字列3を文字列1“文字列2”文字列3にまとめて置換するには"
Excel(エクセル)
-
15
エクセルの計算式を教えてください! もし、 A 1の数値が55を超えたら、(◯−55)×8000 4
Excel(エクセル)
-
16
Excelの条件付き書式のコピーと参照セルを自動で変えるようにする方法
Excel(エクセル)
-
17
45490がどうして
Excel(エクセル)
-
18
今までは、 「CSVの出力先を選択してください。」 という画面から、CSVファイルをデスクトップに引
Excel(エクセル)
-
19
UNIQUE関数、配列数式を使わずに品名ごとの集計を求めたい
Excel(エクセル)
-
20
エクセル数式に問題があります
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数について
-
【マクロ】変数に入れるコード...
-
エクセルのリストについて
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
【マクロ】数式を入力したい。...
-
【マクロ】元データと同じお客...
-
【マクロ】【相談】Excelブック...
-
【マクロ】左のブックと右のブ...
-
vba テキストボックスとリフト...
-
エクセルの複雑なシフト表から...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
エクセルシートの見出しの文字...
-
Dir関数のDo Whileステートメン...
-
LibreOffice Clalc(またはエク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報
補足で追加の画像添付が出来ず、説明不足で伝わりづらい事、申し訳ございませんでした。
理想は、添付画像に並べ替えられたものが理想です。
(これは手動でひとつひとつ動かし、商品名も入力してとりあえず作成いたしました)
画像のように、ひとまず画面上部に並び替えた表が出来れば、下部に空欄のある数値等があっても構いません。
引き続きよろしくお願いいたします。