電子書籍の厳選無料作品が豊富!

エクセルで同じ行にある別項目を分けたいのですがどうしたら上手くできますか?

例えば
(1行目)商品
(2行目)売上
(3行目)粗利
となっているものを
_______(A列) (B列)
(1行目) 商品  売上
       粗利
簡単にこのように表示することが出来る方法があれば教えてください。
1000行を超えるデータは上記のように表示させたくて…
もし、やり方があれば教えていただきたいです。
よろしくお願いします。

質問者からの補足コメント

  • すとVBAは少し触れるくらいです…
    ②のような表を作りたいです。

    説明不足ですみません。
    よろしくお願いします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/02/07 08:20

A 回答 (4件)

1.任意の空きセルに式 =IF(MOD(ROW(A1),2),A$1,"") を、


 ̄ ̄その右隣に式 =OFFSET(A$2,MOD(ROW(A1)-1,2),) を、
 ̄ ̄それぞれ入力
2.上の2つのセルの[フィルハンドル]をマウスで掴んで、下方にズズーッとドラッグ&ペースト
    • good
    • 0

こんなものはいかがでしょうか?


※ 元に戻せませんので、お試しは別シートにコピーなどした状態でお試しください
※「Sample2」は配列変数で作業を行うパターンです。一般的にはこちらの方が早いですが1000行位と少ないならば「Sample1」の方が早いかもしれません。
※「終行 = ActiveSheet.UsedRange.Row」が無いと保存されるまではスクロールバーの可動範囲が元の状態のままになってしまいます。試しに外した状態で実行後スクロールバーを一番下までもっていくと何もないデータのところまで動いてしまうのが確認出来るはずです。


Sub Sample1()

Dim 元行 As Long
Dim 先行 As Long
Dim 終行 As Long
 Columns("B:B").ClearContents
 終行 = Cells(Rows.Count, 1).End(xlUp).Row
 For 元行 = 1 To 終行
  Select Case 元行 Mod 3
   Case 1
    先行 = 先行 + 1
    Cells(先行, 1).Value = Cells(元行, 1).Value
   Case 2
    Cells(先行, 2).Value = Cells(元行, 1).Value
   Case 0
    先行 = 先行 + 1
    Cells(先行, 2).Value = Cells(元行, 1).Value
  End Select
  If 元行 <> 1 Then Cells(元行, 1).ClearContents
 Next
 終行 = ActiveSheet.UsedRange.Row 'スクロールバーを実情に合わせる処理(「終行」には意味はありません)
 MsgBox ("終了しました")

End Sub


Sub Sample2()

Dim 元行 As Long
Dim 先行 As Long
Dim 終行 As Long
Dim 作業 As Variant
 Columns("B:B").ClearContents
 終行 = Cells(Rows.Count, 1).End(xlUp).Row
 作業 = Range(Cells(1, 1), Cells(終行, 2))
 For 元行 = 1 To 終行
  Select Case 元行 Mod 3
   Case 1
    先行 = 先行 + 1
    作業(先行, 1) = 作業(元行, 1)
   Case 2
    作業(先行, 2) = 作業(元行, 1)
   Case 0
    先行 = 先行 + 1
    作業(先行, 2) = 作業(元行, 1)
  End Select
  If 元行 <> 1 Then 作業(元行, 1) = ""
 Next
 Range(Cells(1, 1), Cells(終行, 2)) = 作業
 終行 = ActiveSheet.UsedRange.Row 'スクロールバーを実情に合わせる処理(「終行」には意味はありません)
 MsgBox ("終了しました")

End Sub
    • good
    • 0

マクロ(VBA)を使えば可能ですが、使えますか?



なお結果は下図のどちらでしょうか?
①「売上」と「粗利」を同じ行に入れる
②「売上」と「粗利」を別の行にする
③ その他(具体的に説明して下さい)
「エクセルで同じ行にある別項目を分ける方法」の回答画像2
この回答への補足あり
    • good
    • 0

プログラムを作って処理させればいいですよ。


勉強しましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!