初めて質問させて頂きます。
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ランキング
-
エクセル初心者です 関数の入れ...
-
Microsoft1Officeの互換ソフト...
-
Excel ピボットテーブルで日付...
-
エクセル関数を教えてください
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
LOOKUP関数を使えばいいのでし...
-
エクセル 白黒印刷で白線を印刷...
-
【関数】先頭だけにある、半角...
-
【関数】適切な文字数の数字を...
-
Excelのチェックボックスの使い...
-
エクセルでの作業計算方法について
-
Excelのpivotについて質問です
-
WPS OFFICEでの縦書きについて
-
時間によってファイル名が変わ...
-
エクセルのセルに同じ大きさの...
-
Aというブックの1というシート...
-
エクセルの順位別一覧表の自動...
-
西暦や和暦の表示をyyyymmdd表...
-
【マクロ】エクセルにかいてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報