以前にも同じような質問をされている方がいるかもしれませんが、
どなたかお知恵をお貸しください。
関数を使用して処理したいと考えております。
下記にファイルの一部を抜粋致しましたので、
ご教授のほど宜しくお願い致します。
現在の形
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft365で提供しているアプリ
-
英数字のみ全角から半角に変換
-
【マクロ】違うブックのCallス...
-
Excel テーブル内の空白行の削除
-
outlookのメールが固まってしま...
-
会社PCのメールが更新されない
-
Office2021を別のPCにインスト...
-
バソコンが二台とも壊れ後換装...
-
マイクロソフト 一時使用コード...
-
office365って抵抗感ないですか?
-
エクセルで英文字に入れた下線...
-
Outlook 電源OFFの受診の仕方
-
別シートの年間行事表をカレン...
-
マイクロソフト365の「無料でサ...
-
パソコン画面の中の小さい画面...
-
teams設定教えて下さい。 ①ビデ...
-
みつも朗ってソフトはなにがで...
-
マクロ自動コピペ 貼り付ける場...
-
Microsoft Formsの「個人情報や...
-
エクセルの貼り付け「リンクさ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
outlookのメールが固まってしま...
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
大学のレポート A4で1枚レポー...
-
Officeを開くたびの「再起動メ...
-
Microsoft Formsの「個人情報や...
-
one drive使えるpcを買う
-
マクロ自動コピペ 貼り付ける場...
-
PDFのハイパーリンクを自動的に変更し...
-
あらかじめ用意したテンプレー...
-
別シートの年間行事表をカレン...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
office365って抵抗感ないですか?
-
ステータスバーの合計に表示さ...
-
【スプレドシート】IF関数の複...
-
Teamsで課題を提出します。 画...
-
Outlook で宛先が複数の場合の人数
-
Microsoft Officeを2台目のPCに...
おすすめ情報