No.4ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Option Explicit
Public Sub 並べ替え()
Dim ws As Worksheet
Dim maxrow As Long
Dim row1 As Long
Dim row2 As Long
Dim col As Long
Set ws = Worksheets("Sheet1")
maxrow = ws.Cells(Rows.count, "A").End(xlUp).row 'A列の最大行取得
ws.Columns("F:G").ClearContents
row2 = 1
For row1 = 1 To maxrow
For col = 2 To 4
If ws.Cells(row1, col).Value <> "" Then
ws.Cells(row2, "F").Value = ws.Cells(row1, "A").Value
ws.Cells(row2, "G").Value = ws.Cells(row1, col).Value
row2 = row2 + 1
End If
Next
Next
End Sub
No.5
- 回答日時:
恥ずかしながら、マクロ音痴で初心者な私の場合は次の方法しか思い浮かびません。
(*^_^*)式 =COUNTA(B1:D1) を入力したセル E1 のフィルハンドルを下方に(数値
0 が表示されるまで)オートフィル⇒式↓
=OFFSET(A$1,(ROW(A1)-1)/MAX($F:$F),) を入力したセル F1 を右隣に
オートフィル⇒コピーされたセル G1 の式を下記のように編集
=OFFSET(A$1,(ROW(A1)-1)/MAX($E:$E),)
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
=OFFSET(B$1,(ROW(A1)-1)/MAX($E:$E),MOD(ROW(A1)-1,MAX($E:$E)))
続いて、範囲 F1:G1 のフィルハンドルを下方にズズズーッと(両列のデータが数値 0 を呈するまで)オートフィル
結果を添付図に示した。
更に続いて、列範囲 F:G を選択⇒Ctrl+C⇒選択状態のままの列範囲 F:G 上
でマウスの右クリック⇒[貼り付けのオプション]直下の[123](値)アイコンを
ツン⇒G列を選択⇒Ctrl+G⇒[セル選択]⇒“定数”に目玉入れた後で数値以外に
付いているチェック外し⇒[OK]をツン⇒ 選択された数値 0 の任意のセル上
でマウスの右クリック⇒[削除]⇒“行全体”に目玉入れ⇒[OK]を「エイヤッ!」
と叩き付け
この回答へのお礼
お礼日時:2022/04/23 07:15
早急にありがとうございます。
簡単にできました。今後も参考にさせていただきます。また困ったら投稿させてもらうかもしれないので、宜しくお願いします
No.3
- 回答日時:
こんばんは
同じ内容の質問を何度か見かけた記憶があります。
ですので、検索すればいろいろな解決方法が見つかると思います。
>関数もしくはマクロを使って効率的な変換する方法を教えて下さい、
関数でも可能と思いますが、セル位置がまったくわからないので、具体的には示せません。
上の行から順に、「値のある列のセル」を参照してゆき、その累積個数の行にそのセルの値のペアを記入すればよいことになります。
記入する行番号から元のデータ位置を計算するには、値の個数はCOUNTIFやCOUNTAで数えられますので、それを行ごとに累計した数を求め、行番号を超えない最大の順番の行が転記の対象行となり、「行番号 - 累計値」が列の番号として求めることができます。
位置が計算できれば、そのセルの値を参照すれば良いだけになります。
マクロの場合はもっと簡単に、行と列の2重ループ内で、記入する毎に記載対象行を1ずつ増加してゆけばすみます。
方法についてのご質問なので、上記で十分と思いますが、文章での回答の意味を読み取れない人が非常に多いので、以下にマクロの例を。
※ セル位置がまったく不明なので、勝手にA1セルからデータがあるものと解釈。
※ 途中に空白セルがある場合には、そのセルは飛ばします。
※ そのまま書き換えますので、コピーしてから試すなりしてください。
Sub Q12911128()
Dim rang As Range, v
Dim rw As Long, col As Long
v = ActiveSheet.UsedRange.Value
Set rng = Range("A1:B1")
Cells.ClearContents
For rw = 1 To UBound(v)
If v(rw, 1) <> "" Then
For col = 2 To UBound(v, 2)
If v(rw, col) <> "" Then
rng(1).Value = v(rw, 1)
rng(2).Value = v(rw, col)
Set rng = rng.Offset(1)
End If
Next col
End If
Next rw
End Sub
※ あくまでも例なので、対象を指定範囲にするとか、別シートに書き出すなどは、ご自由に改変してください。
No.2
- 回答日時:
補足要求です。
1.左側のシートのシート名は何ですか。
2.右側のシートのシート名は何ですか。
3.左側のシートの正確なレイアウトがわかりません。
一番左上のセル(11111)はA1でしょうか。
4.右側のシートの正確なレイアウトがわかりません。
一番左上のセル(11111)はA1でしょうか。
5.左側のシートの行数はおよそ何行ありますか。
No.1
- 回答日時:
こんばんは。
直接の回答ではありませんが、Excel VBA データ 縦に並べる で検索すると
例えば、下記の様なものが見付かります。
シート1のデータを、シート2へ展開するマクロの様ですが。
https://oshiete.goo.ne.jp/qa/7159851.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelの時間変換について 300(分)→5(時間) を5:00とする表記する方法は、ありますでし 3 2022/07/29 16:49
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
- Excel(エクセル) iphonからone driveに保存してあるExcelを閲覧すると表示の仕方がちがうデータ 2 2022/12/21 13:51
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- Oracle SELECTによる表の変換方法を教えてください 2 2023/07/16 01:26
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Excel(エクセル) Excelの並び替え(先頭の文字以外を基準に並び替えたい) 3 2023/07/07 22:21
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度・経度の値をエクセルで変...
-
エクセル関数/10進法から60進法...
-
MP3を楽譜に変換するサイト、ア...
-
意外に?以外に??どちらが正...
-
アリーナ型議会と変換型議会の...
-
インディアン語で太陽は何て言...
-
PDFファイルのプロパティ内容削...
-
クリスタでCMYKのデータを読み...
-
Windows Media PlayerからMP3に...
-
つらそう…を丁寧に言うなら、お...
-
Excel表について(2)
-
平方メートルの単位の出し方。
-
粗利(あらり)をそりと読む人...
-
PNGファイルをSVGにロスなしで...
-
PDF変換に時間がかかる
-
Wordに囲い文字というのがない...
-
VB.NETで小数点以下の桁数を取...
-
三井住友銀行のVポイントをいつ...
-
cdiをisoに変換したいのですが
-
スマートメディアを他のメディ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度・経度の値をエクセルで変...
-
エクセル関数/10進法から60進法...
-
MP3を楽譜に変換するサイト、ア...
-
意外に?以外に??どちらが正...
-
スプレッドシートから、スプレ...
-
VB.NETで小数点以下の桁数を取...
-
miniSD変換アダプタ
-
PDFファイルのプロパティ内容削...
-
PNGファイルをSVGにロスなしで...
-
つらそう…を丁寧に言うなら、お...
-
勝手に無変換になる
-
Windows Media PlayerからMP3に...
-
三井住友銀行のVポイントをいつ...
-
アリーナ型議会と変換型議会の...
-
クリスタでCMYKのデータを読み...
-
Wordに囲い文字というのがない...
-
使っている水質検査の紙がmg/L...
-
名前を数字にしたい。
-
土日祝 の正しい読みは
-
エクセル DEC2BIN 範囲外数値の...
おすすめ情報
ありがとうございます。
1.2 左右どちらも同じシートでsheet1です。
3.左側のセル〈11111)はA1です
4.右側のセル〈11111)はF1です
5.左側の行数は1000行です。