![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
初めて質問させて頂きます。
excelで困っていることがあり質問させて頂きました。
excel シートに入力されている内容を左右対照入れ替えしたいのです。
簡単に書きますと、
A1 に 数字の1
B1 に 数字の2
C1 に 数字の3
D1 に 計算式 =A1+ B1 + C1
と入力してあるファイルがあったとして、それを
A1 に 計算式 =A1+ B1 + C1
B1 に 数字の3
C1 に 数字の2
D1 に 数字の1
と左右対称に入れ替えたいのです。
なんらかの方法は無いでしょうか?
宜しくお願い致します。
No.6ベストアンサー
- 回答日時:
#2です。
試しに汎用化してみました。自分で使うシチュエイションは思い浮かびませんが...Sub test()
Dim i As Long
Const mirrorColumnsNo As Long = 4
ActiveSheet.Columns(1).Resize(, mirrorColumnsNo).Cut Destination:=Sheets(2).Columns(1).Resize(, mirrorColumnsNo)
For i = 1 To mirrorColumnsNo
Sheets(2).Columns(i).Cut Destination:=ActiveSheet.Columns(mirrorColumnsNo - i + 1)
Next i
ActiveSheet.Columns(1).Resize(, mirrorColumnsNo).Replace What:=ActiveSheet.Name & "!", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End Sub
最後は、Sheet1にある式に、Sheet1!という参照が付いてうるさいので、仕方なく取り除いています。
No.5
- 回答日時:
計算式があると、参照範囲がおかしくなりますが、
並び替えを使って一気に入れ替える方法もあります。
A2~D2に1~4の数字を入力
(データが多い時はオートフィルやcolumn関数が便利)
A1~D2の範囲を選択しておいて、
データ、並び替えから、オプションで列単位に指定して、
行2を降順で並びかえれば一気に左右逆になります。
(数式はエラーになります)
この例では並び替えの前にD1~D2を切り取ってA1~A2に挿入してから
並び替えをすれば正しくなりますが、
実際にどの程度の数式が含まれているデータを処理するかで、
並び替え後がおかしくなるかが変わってきます。
数式が狂う事が前提で、参考になればと思います。
完璧に入れ替えるなら、他の方が言っているようにVBAしかないでしょう。
No.4
- 回答日時:
どれぐらいの広がりを持った問題によりますが、
(例えば式を移すのは関数では出来ないのをご存知か?)
セルの値だけなら
1236
6321
第2行のA2に
=INDEX($A$1:$D$1,1,5-COLUMN())
と入れて、秘儀右方向に式を複写。
ーー
セルの式まで移すなら、VBAで無いと出来ません。
第3行目に出す例
Sub test01()
r = Range("IV1").End(xlToLeft).Column
For i = 1 To r
Cells(3, r + 1 - i) = Cells(1, i) '3が第3行目を指定部分
If Cells(1, i).HasFormula Then
Cells(3, r + 1 - i).Formula = Cells(1, i).Formula
End If
Next i
End Sub
No.2
- 回答日時:
列丸ごと移動すれば良いのではないでしょうか。
数式はExcelが調整してくれます。
>A1 に 計算式 =A1+ B1 + C1
では循環してしまいますので、
=D1+C1+B1
等ですね。
操作をマクロの自動記録をすると
Sub Macro1()
Columns("A:A").Select
Selection.Cut Destination:=Columns("E:E")
Columns("D:D").Select
Selection.Cut Destination:=Columns("A:A")
Columns("B:B").Select
Selection.Cut Destination:=Columns("D:D")
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
End Sub
となります。ご参考まで。
mitarashi さん
回答有難うございます。
マクロ参考にさせてください、実際は横軸にかなりの量の入力が
あるシートの変換をしたいので地道にやっています。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) Excel 数式を教えてください 2 2022/06/02 12:24
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) Excel表示形式 2 2022/09/09 09:57
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) ある範囲のセルに何を入力すると、別のセルに○を表示させる 3 2022/04/05 15:51
- Excel(エクセル) エクセルで教えて下さい。 2 2022/05/18 13:00
- Excel(エクセル) 日本語向きの“ダブルクオーテーション”の入力 1 2022/10/16 11:33
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelデータをコピペして、ペー...
-
スプレッドシート、Excelでの数...
-
エクセルの関数について教えて...
-
スプレッドシートで使う数式を...
-
Microsoft Officeの中古は信用...
-
エクセルで会社の従業員のデー...
-
Excelで50個のセルに同じ文字を...
-
エクセルの表で1年間の曜日を...
-
エクセルでの特別な文字を上に...
-
エクセルで不等号記号(≠)が上に...
-
エクセルでB列でフィルターをか...
-
エクセルでセルに標準で入力さ...
-
Excelで、項目の種類ごとにカウ...
-
【マクロ】アクティブセルにブ...
-
EXCELの質問です 119から足した...
-
【マクロ】アクティブセルの、...
-
【マクロ】アクティブセルの行...
-
エクセルの空欄をつめて、次の...
-
Excelの数式について教えてくだ...
-
非表示列の再表示に失敗
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報