Excel97を使用しております。

ある表の2つの列をそっくり入れ替えたいのですが、簡単にできる方法はないでしょうか。
できれば、罫線は入れ替わって欲しくないのですが、地道にやるしか手はないでしょうか。
念の為記載しますが、「入れ替える」というのは、例えばA列の内容をB列に、B列の内容を
A列にする、ということです。
よろしくお願い致します。

A 回答 (4件)

ご説明では分かりにくいんですが、列を移動したいということですか?それなら単に「列のカット&ペースト」で良いんじゃないでしょうか。



入れ替えたいどちらかの列を列ごと選択し、右クリックの「切り取り」をして、もう一つの列の左側に移動したいなら、そのもう一つの列上のセルを一つだけ選択し、再び右クリックの「切り取った列の貼り付け」をします。右側に入れたいなら、もう一つの列の右隣の列のセルで同じことをしてみて下さい。列ごとやるのでセルに設定した書式はそのままです。
それか、新しく列を一列挿入し、移動したい列をそこへコピー&ペーストするかですね。この場合も書式は変更はありません。

違ったら補足で再びご説明ください。
    • good
    • 0
この回答へのお礼

カット&ペーストだと、書式ごとですよね。
罫線は入れ替えないで、というところで悩んでるんです。

と、入力してたら方法を思いつきました。
回答ありがとうございました。

お礼日時:2001/09/27 14:00

再度挑戦


空き列をZとします

A列の上のAの所で右クリック→切り取り
Z列の上のZの所で右クリック→貼り付け

B列の上のBの所で右クリック→切り取り
A列の上のAの所で右クリック→形式を選択して貼り付けで全てを数式にしOK

Z列の上のZの所で右クリック→切り取り
B列の上のBの所で右クリック→形式を選択して貼り付けで全てを数式にしOK

でいかがでしょうか

なにかあれば補足して下さい。何度でも来ます。

がんばれ
    • good
    • 0
この回答へのお礼

わざわざ2度の回答、感謝です。
「切り取り」をすると「形式を選択して貼り付け」ができないんですが、
#3の回答を見たときに、教えていただいた方法と似た方法を思いついて
解決致しました。
本当にありがとうございました。

お礼日時:2001/09/27 14:14

以下の操作で出来ると思います。



1.入れ替えたい片方の列を選択します。

2.選択された列の境界線の辺りにカーソルを持っていき斜め上を向いた矢印に変わるところに置きます。

3.[Shift]を押しながらドラッグし、入れ替えたい相手の列のところでドロップします。

隣の列ならこれで完了です。
離れた列ならもう一方の列も同様の操作をすればOKだと思います。

この回答への補足

2まではできたのですが、3の操作がうまくできません。
何が悪いのでしょうか。

補足日時:2001/09/27 13:49
    • good
    • 0
この回答へのお礼

#3の方の回答で、方法を思いつきました。
回答ありがとうございました。

お礼日時:2001/09/27 13:58

罫線ごとでよければ(空き列をZとします)



A列の上のAの所で右クリック→切り取り
Z列の上のZの所で右クリック→貼り付け

B列の上のBの所で右クリック→切り取り
A列の上のAの所で右クリック→貼り付け

Z列の上のZの所で右クリック→切り取り
B列の上のBの所で右クリック→貼り付け

でいかがでしょうか
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございます。
この方法は私も思いついたのですが、「罫線ごと」がイヤだったもので。
でも、これしかないですかね。

お礼日時:2001/09/27 13:48

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

このQ&Aと関連する良く見られている質問

Q3.11

3.11について貴方の思い出を書いて貰えますか?

Aベストアンサー

地震があった時、丁度飛行機に乗っていて羽田上空でグルグル旋回された事。中々着陸出来なかったし着陸後も羽田空港閉鎖で大パニック。

QExcel2013 VBA A列とB列の文字をA列とB列とC列に移動させる方法

A列とB列に文字が入っているのですが、下記のようにA列とB列とC列に文字を移動させたいです。
(A列の数字は必ず奇数のA列に入っています。)
VBAのコードを教えて下さい。

例えば
A1 1  B1 cat
A2 空白 B2 猫
A3 空白 B3 dog
A4 空白 B4 犬
A5 2  B5 whale
A6 空白 B6 クジラ
A7 3  B7 rabbit
A8 空白 B8 ウサギ

とデータがある場合

A1 1  B1 cat  C1 猫
A2 空白 B2 dog  C2 犬
A3 2  B3 whale  C3 クジラ
A4 3  B4 rabbit C4 ウサギ

としたいです。

実際、データは、A5196まであります。

Aベストアンサー

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

少しは短縮できると思います。m(_ _)m

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeB...続きを読む

Q9.11や3.11のように・・・

9.11や3.11のように災害とは常に突然起こるものです。

って英語ではなんて言いますか?
教えてください(>_<)

Aベストアンサー

日本文をそのまま直訳するから、英訳し辛くなる・・・
同じ意味で、

誰も311や911のような大きなアクシデントを予想することは出来なかった。
何故なら災害とは、突然起こるものなのだからです。

というふうに2文にしたら、簡単で訳せますよね?
上記の1文を、修飾したり何とかするのは非常に面倒です。
面倒なら面倒で、訳しやすいよう、同じような意味で、簡単に分けるのも1つの方法です。

QA列とB列の重複を抽出したいのですがA列とB列の値は一部だけ同じ文字です。ご教示お願いします。

エクセル初心者です。重複を見つけるのが仕事です。いろいろやってみたのですがうまくできません。
お知恵をお貸しください。

A列には企業名が入力されています。
B列にも企業名が入力されていますが全く同じ文字ではないのです。

たとえばこういうことです。
A1 (有)雪見酒      B1  雪見
A2 株式会社豪雪地帯   B2 (株)豪雪地帯
A3 ゆきかき本舗     B3 (有)ゆきかき本舗

A列にある企業名とB列にある企業名が同じであればセルを塗りつぶすか○を表示させるように
したいのです。
重複を見つけるのが目的なので、ほかの方法でもかまいません。
すみません、A列のセルとB列のセルが全く同じ名前ならば重複が見つけられたのですが
ここから先がどうしてもわからないのです。。。
申し訳ありませんがどうか教えてください。。。

Aベストアンサー

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim nameT1(maxrow1)
ReDim nameT2(maxrow2)
Range("C1:" & "D" & maxrow2).Value = ""
Call makeTable(nameT1, "A", maxrow1)
Call makeTable(nameT2, "B", maxrow2)
For row1 = 1 To maxrow1
For row2 = 1 To maxrow2
If Cells(row2, "C") = "" Then
If Mymatch(nameT1(row1), nameT2(row2)) = True Then
Cells(row2, "C").Value = "○"
Cells(row2, "D").Value = row1
End If
End If
Next
Next
t2 = Time
MsgBox ("チェック完了 処理時間=" & Minute(t2 - t1) & "分" & Second(t2 - t1) & "秒")
End Sub
'余分な文字を削除した結果をテーブルに格納する
Private Sub makeTable(ByRef nameT() As String, ByVal col As String, ByVal maxrow As Long)
Dim row As Long
Dim ary As Variant
Dim name As String
Dim i As Long
ary = Array("㈱", "(株)", "株式", "(有)", "有限", "会社")
For row = 1 To maxrow
name = Cells(row, col).Value
For i = 0 To UBound(ary)
name = Replace(name, ary(i), "")
Next
nameT(row) = name
Next
End Sub
'企業名が一致かどうか判定する
Private Function Mymatch(ByVal name1 As String, ByVal name2 As String) As Boolean
Mymatch = False
Dim pos As Variant
pos = InStr(1, name1, name2, vbTextCompare)
If pos > 0 Then Mymatch = True
End Function
-----------------------------------------------------
一致の精度が悪ければその旨補足してください。
(一致すべきものが一致しない、一致してはいけないものが一致している)
100%解決できる保証はありませんが、多少のチューニングは行います。

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim ...続きを読む

Q【地震】明日3.11規模の大地震発生か

今日の地震もヤバかったけど
これって去年3.11が起きる前日と酷似してるよね?
明日とかに3.11規模の大地震がまた起こる可能性は高いのかな?
皆はどう思うかな?

画像
http://livedoor.3.blogimg.jp/himasoku123/imgs/b/0/b0f50a0b.jpg

Aベストアンサー

同規模の地震が同じようなところで起これば、震源からの距離と震度の分布が同じようになるのは当たり前。
同じような場所で起こった同じような規模の地震の震度分布を重ねた地図を並べて見せれば、似ているように見えない方がおかしい。
[2012年3月14日18時09分の地震] の震度分布が[2011年3月10日6時24分の地震] と似ているというのなら、[2011年7月10日9時57分の地震]や[2011年9月17日4時26分の地震]や[2011年11月24日4時24分の地震]も同じくらい似た震度分布になっているといえるはず。

2012年3月14日18時09分の地震
http://tenki.jp/earthquake/detail-10223.html

2011年3月10日6時24分の地震
http://tenki.jp/earthquake/detail-3597.html

2011年7月10日9時57分の地震
http://tenki.jp/earthquake/detail-6928.html

2011年9月17日4時26分の地震
http://tenki.jp/earthquake/detail-8119.html

2011年11月24日4時24分の地震
http://tenki.jp/earthquake/detail-9025.html

でもその翌日に大地震は起こっていないよね?
これってどう思うかな?

同規模の地震が同じようなところで起これば、震源からの距離と震度の分布が同じようになるのは当たり前。
同じような場所で起こった同じような規模の地震の震度分布を重ねた地図を並べて見せれば、似ているように見えない方がおかしい。
[2012年3月14日18時09分の地震] の震度分布が[2011年3月10日6時24分の地震] と似ているというのなら、[2011年7月10日9時57分の地震]や[2011年9月17日4時26分の地震]や[2011年11月24日4時24分の地震]も同じくらい似た震度分布になっているといえるはず。

2012年3月14日18時09分...続きを読む

Q例えば、AさんからGさんまでがA列に縦に並んでいてB列に数字が入っています。B列にある数字の合計をA

例えば、AさんからGさんまでがA列に縦に並んでいてB列に数字が入っています。B列にある数字の合計をA-Gさん別々に出したいんですが簡単なvbaの記述方法はないでしょうか?
お願いします。

Aベストアンサー

こんばんは!

A列のA~Gさんは複数存在しているのでしょうか?
そうであればSUMIF関数で対応できると思いますが、VBAをお望みだというコトですので
一例です。

元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。

Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
With Range(wS.Cells(2, "B"), wS.Cells(lastRow, "B"))
.Formula = "=SUMIF(Sheet1!A:A,A2,Sheet1!B:B)"
.Value = .Value
End With
End With
End Sub

こんな感じではどうでしょうか?m(_ _)m

こんばんは!

A列のA~Gさんは複数存在しているのでしょうか?
そうであればSUMIF関数で対応できると思いますが、VBAをお望みだというコトですので
一例です。

元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。

Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A...続きを読む

Q3.11人工地震説

3.11人工地震説を信じている人は、物事を自分で考えられない思考停止者ですか?

突っ込みどころ満載のブログをソースに色々垂れ流しているのは、科学的裏付けをしないからでしょうか?

Aベストアンサー

初耳(眼)です。
どんな説,何処で見られますか?
あれだけの破壊力を持ったエネルギー,人工で生み出すのはとても無理です。
世界最大の水爆でも追いつかないと思います。
アメリカ・フランスの珊瑚礁核実験でも,津波は見られませんでした。
相当大きな隕石の衝突に匹敵するエネルギーです。
誰がイタズラしたのでしょうか?

QA列とB列に文字が両方あった場合のみセルの入れ替えを行う

社員番号のデータがA列とB列に並んで表示されているデータがあります。

A列とB列が隣り合った時のみセルを入れ替えする方法を色々と考えておりますが
上手く行きません。
マクロで2つのセルを選択して実行すると入れ替えが出来るコードを
見つけて使っていましたが、データ量が多く対応できないので
ご教授願えないでしょうか?

下記に、簡単ではありますが
概要の説明と添付ファイルで図での説明
参考に、現在使わせてもらっているマクロのコードを記述します。

変更前 変更後
A列   B列       A列   B列
1 A1        A1 1
2 A2 A2 2
3 A3 A3 3
92361 空白 92361 空白
02367 A12345     A12345 02367
02368 A12346 A12346 02368

A列とB列が隣あって文字が入力されてる場合、
隣同士入れ替えをする。
A列は文字が何かしら入ってますが
B列は空白セルが混じることもあります。
その場合、何もしない



Sub セル入れ替え()
Dim i As Integer
Dim strTmp(2) As String
If TypeName(Selection) = "Range" And Selection.Count = 2 Then
i = 0
For Each c In Selection
strTmp(i) = c.Value
i = i + 1
Next
For Each c In Selection
i = i - 1
c.Value = strTmp(i)
Next
End If
End Sub

社員番号のデータがA列とB列に並んで表示されているデータがあります。

A列とB列が隣り合った時のみセルを入れ替えする方法を色々と考えておりますが
上手く行きません。
マクロで2つのセルを選択して実行すると入れ替えが出来るコードを
見つけて使っていましたが、データ量が多く対応できないので
ご教授願えないでしょうか?

下記に、簡単ではありますが
概要の説明と添付ファイルで図での説明
参考に、現在使わせてもらっているマクロのコードを記述します。

変更前 ...続きを読む

Aベストアンサー

こんばんは!
色々やり方はありますが、一例です。

>B列が空欄のものは無視
というコトですので、A列で最終行を取得しています。

Sub Samle1()
Dim i As Long
Application.ScreenUpdating = False
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If WorksheetFunction.CountBlank(Cells(i, "A").Resize(, 2)) = 0 Then
Cells(i, "A").Insert shift:=xlToRight
Cells(i, "A") = Cells(i, "C")
Cells(i, "C").Delete shift:=xlToLeft
End If
Next i
Application.ScreenUpdating = True
End Sub

こんな感じではどうでしょうか?m(_ _)m

こんばんは!
色々やり方はありますが、一例です。

>B列が空欄のものは無視
というコトですので、A列で最終行を取得しています。

Sub Samle1()
Dim i As Long
Application.ScreenUpdating = False
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If WorksheetFunction.CountBlank(Cells(i, "A").Resize(, 2)) = 0 Then
Cells(i, "A").Insert shift:=xlToRight
Cells(i, "A") = Cells(i, "C")
Cells(i, "C").Delete shift:=...続きを読む

QDivX 3.11 のインストール

DivX 3.11 をインストールしようとすると「Windowsのロゴテストに合格していません」というメッセージが出ます。
このままインストールを続行するのはまずいのでしょうか?
OSはXPで、DivX5.02はインストール済です。

Aベストアンサー

このメッセージが出ているとしても問題無いと思います。

よくあるメッセージです。

QエクセルでB列の数値がA列(A1:A10)の範囲に存在するかどうかを知りたい

こんばんは。
エクセルでこのようなことができるのかどうか分からないので、教えてください。

B列の数値がA列(A1:A10)の範囲に含まれる数値なら○、含まれない数値なら×と、C列に表示したいのですが、エクセルでそのようなことはできるのでしょうか。
できるのであれば方法を教えていただけますでしょうか。
よろしくお願いいたします。

<<最終的な結果は以下のように表示したいです>>

  A B C

1 12 19 ○

2 15 20 ○

3 19 28 ○

4 20 30 ×

5 23 34 ○

6 28 35 ×

7 32 38 ×

8 34 39 ○

9 39

10 40

Aベストアンサー

セル C1 に式 =IF(COUNTIF(A:A,B1),"○","×") を入力して、此れを下方にズズーッと複写


人気Q&Aランキング

おすすめ情報