以前にも同じような質問をされている方がいるかもしれませんが、
どなたかお知恵をお貸しください。
関数を使用して処理したいと考えております。
下記にファイルの一部を抜粋致しましたので、
ご教授のほど宜しくお願い致します。
現在の形
A B C D E
1 SHIRTS カラー黒 サイズ38 サイズ39 サイズ40
上記のような形で4000行くらいあります。
列は最長でABまで使用しております。
上記のようなデータを下記のような形に並べ替えたいと思っております。
希望の形
A B C
1 SHIRTS カラー黒 サイズ38
2 SHIRTS カラー黒 サイズ39
3 SHIRTS カラー黒 サイズ40
サイズの展開を横表示から縦表示に変更したいのです。
素人質問で申し訳ありませんが、どなたか宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
こんにちは。
4000行ある時点で数式(関数)で処理をすることに抵抗を感じます。
VBAを使用したほうが賢明かと思います。
標準モジュールを追加し以下コードをお試しください。
尚、動作としてはSheet1にあるデータをSheet2に展開すると言った流れになっています。
質問の中で「最長でAB列まで」と言うことでしたが念のためBBやCB・・・までデータがあったとしても動作するよう作ってあります。
Sub Sample()
Dim I As Long, X As Long
Dim R1 As String, R2 As String
I = 1: X = 1
Application.ScreenUpdating = False
Do While Range("Sheet1!A" & I).Value <> "" 'Sheet1の行移動ループ
R1 = "": R2 = "C"
Do While Range("Sheet1!" & R1 & R2 & I).Value <> "" 'Sheet1の列移動ループ
Range("Sheet2!A" & X).Value = Range("Sheet1!A" & I).Value
Range("Sheet2!B" & X).Value = Range("Sheet1!B" & I).Value
Range("Sheet2!C" & X).Value = Range("Sheet1!" & R1 & R2 & I).Value
If R2 = "Z" Then '列移動コード
If R1 <> "" Then
R1 = Chr(Asc(R1) + 1)
Else
R1 = "A"
End If
Else
R2 = Chr(Asc(R2) + 1)
End If
X = X + 1 'Sheet2の次の行へ
Loop
I = I + 1 'Sheet1の次の行へ
Loop
Application.ScreenUpdating = True
MsgBox ("完了")
End Sub
こんばんは。
ご丁寧にありがとうございます。
画像まで付けていただき、とてもわかりやすかったです。
ご指摘の通り、関数で処理するには無理があったようです。
明記していただいたとおりに作成してみたところ、
あっさり処理することができました。
本当にありがとうございました。
心から感謝いたします。
No.2
- 回答日時:
「現在の形」が Sheet1 にあり、「希望の形」を Sheet2 に作成するものとします。
Sheet2!A1: =OFFSET(Sheet1!A$1,(ROW(A1)-1)/3,)
Sheet2!B1: =OFFSET(Sheet1!B$1,(ROW(A1)-1)/3,)
Sheet2!C1: =OFFSET(Sheet1!C$1,(ROW(A1)-1)/3,MOD(ROW(A1)-1,3))
こんばんは。
簡潔にお答えいただきありがとうございます。
明記していただいたような方法があるのですね。
とても勉強になりました。
質問へのご回答ありがとうございました。
本当に助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(動画サービス) VLCメディアプレーヤーについて 1 2022/11/29 14:19
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- 画像編集・動画編集・音楽編集 A1サイズで画像作成(300枚以上の写真を並べたいです) 1 2023/08/03 12:18
- ホームページ作成・プログラミング グリッドレイアウトHTMLとCSS 1 2023/02/22 02:36
- 郵便・宅配 大きくて平たく、軽いものの郵送方法。 4 2023/02/21 12:11
- プリンタ・スキャナー パソコンで繋げる白黒印刷プリンター機に関しましての御質問です。<m(__)m> 5 2022/06/07 09:41
- プリンタ・スキャナー A3対応、スキャナー付きでおススメのプリンターはどれになりますか? リモートワークが多くなった為 ビ 2 2022/04/22 19:52
- Excel(エクセル) エクセルで納品書(入伝票)を作成 7 2022/04/14 10:15
- その他(スポーツ) ボールベアリングを探しています。 1 2023/01/04 17:15
- デザイン 縦18.0cm 横13.5cm の紙はどの用紙サイズに近いか 4 2022/08/13 11:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Outlook で宛先が複数の場合の人数
-
【スプレッドシート】指定の日...
-
Microsoft Formsの「個人情報や...
-
Microsoft Edgeの「ニュースと...
-
VLOOKUP関数について
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
outlookのメールが固まってしま...
-
teams設定教えて下さい。 ①ビデ...
-
Microsoft365で写真をアルバム...
-
Microsoft Officeに似たキング...
-
会社におけるOfficeライセンス...
-
【スプレッドシート】白色のセ...
-
Excel VBA 日程表からスケジュ...
-
VBAファイルの保存先について
-
エクセル、ワード、ネット検索...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
マイクロソフト 一時使用コード...
-
英数字のみ全角から半角に変換
-
Office2021を別のPCにインスト...
-
Microsoft Formsの「個人情報や...
-
officeビジネス型のワードやエ...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
Microsoft Officeを2台目のPCに...
-
何このステータスバー
-
2つのシートの一致する行のセ...
-
会社のTeamsのことで相談です。...
-
エクセルにリンクされるのをし...
-
Windows 11で、IME言語バー(IM...
-
office2010とoffice365の共存で...
-
Microsoftのパソコンです。 エ...
-
エクセルでXLOOKUP関数...
-
Excel関数について質問ですm(__)m
-
VBA
-
自分の専門分野の仕事。初見で...
おすすめ情報