初めての店舗開業を成功させよう>>

エクセル上での作業で縦に並んだ数値を一つ飛ばしに選択してほかの場所へペーストする際、行と列を入れ替えて横にペーストしたい。(ここまでは出来ます)さらにそのペーストする際通常の左からではなく右から左へ向かってペーストする方法はありますか?
一度通常通りペーストしてから左右逆にする作業をやらなければならないでしょうか?一度に出来れば助かるのですが。

A 回答 (3件)

A1B1C1D1


A2B2C2D2
A3B3C3D3
A4B4C4D4
A5B5C5D5
↑こうあるものを、

A5A4A3A2A1
B5B4B3B2B1
C5C4C3C2C1
D5D4D3D2D1
↑こうしたい、ということでよろしいでしょうか?

あまり一般的な処理ではないので、一発でやるのは難しいですね。

元の表の範囲がA1:D5,貼り付け先の右上隅のセルがJ1とすると、

 J1:=INDEX($A$1:$D$5,ABS(COLUMN()-COLUMN($J$1))+1,ABS(ROW()-ROW($J$1))+1)

として左方,下方にフィルすればご要望の通り並べ替えられます。
あとは、コピー⇒値貼り付けで確定すればOK。
(Excel2003で動作確認済)
    • good
    • 0
この回答へのお礼

ありがとうございます。大変助かります。早速やってみたいと思います。ありがとうございました。

お礼日時:2007/07/30 09:28

そんな操作はないです。


特殊なニーズでしょう。だからMSのエクセル開発者も作ってないのだろうと思います。
いつも正順、逆順を指定させられては操作が煩雑になる。既定値を正順にする方法もあるが、画面1ステップ増える。
    • good
    • 0

直接の回答じゃないけれど・・・。



例えば、A列の1・3・5・7・9・・・行目をコピーするとしたら、まず、A列の前に2列挿入します。
で、挿入した新A列に1行目から1・空白・2・空白・以下フィルコピーと数字を入れます。
新B列には1行目から1・2・3・・・と普通に数字を入れます。
で、まずA列を降順で並べ替え、そして該当箇所(新C列)をコピーして行列を入れ替えて貼り付けます。
その後、B列で昇順に並べ替え、A・B列を削除すれば完了です。

1行おきに選択するのも面倒なのでは、と思ったのでそこも一緒に解決してみました。
どうでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。判りやすい説明助かります。左側為s手見たいと思います。

お礼日時:2007/07/30 09:29

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

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

Q逆さまに貼り付け(excel)

コピーした範囲を貼り付ける際に、持っているデータの一番最後から貼り付けていく方法を探しています。
 VBAの領域でしょうか。。。

 例えばセル番地A1からA3には数値の1,2,3がそれぞれ入っている。それをコピーします。そのやりたい方法でA4番地のセルで”貼り付け”をすると3が、A5番地には2が、A6番地には1が貼付られるようにしたいのです。
 形式を選択して貼り付け、というメニューの中にもそのような選択肢はありませんでした。
 当ジャンル内で"貼付 逆から EXCEL エクセル 逆さま さかさま あべこべ”といったキーワードで検索してもなかったです。
 また念のため、”コンピューター [技術者向け] > プログラミング > Visual Basic ”カテゴリもちょっと調べたのですが、なかったので質問させてください。

 宜しくお願いします

Aベストアンサー

こんにちは。

マクロでの解決のようですから、以下のような方法で出来ます。最初にマウスで、コピーする範囲を選択してから、マクロを実行します。ショートカットに取り付けると良いかと思います。

'標準モジュール
Sub ReverseCopy()
'逆さにコピーする
Dim myRng As Range
Dim Dest As Range
Dim i As Long
Dim j As Integer
Dim k As Long
If TypeName(Selection) <> "Range" Then Exit Sub
Set myRng = Selection
 Application.DisplayAlerts = False
 On Error Resume Next
 Set Dest = Application.InputBox("貼り付け先を指定してください", Type:=8)
 If Dest Is Nothing Then Exit Sub
 On Error GoTo 0
 Application.DisplayAlerts = True
 Set Dest = Dest.Cells(1)
With myRng
For j = 1 To .Columns.Count
 For i = .Rows.Count To 1 Step -1
  k = k + 1
  Dest(k, j).Value = .Cells(i, j).Value
 Next i
 k = 0
Next j
End With
End Sub

こんにちは。

マクロでの解決のようですから、以下のような方法で出来ます。最初にマウスで、コピーする範囲を選択してから、マクロを実行します。ショートカットに取り付けると良いかと思います。

'標準モジュール
Sub ReverseCopy()
'逆さにコピーする
Dim myRng As Range
Dim Dest As Range
Dim i As Long
Dim j As Integer
Dim k As Long
If TypeName(Selection) <> "Range" Then Exit Sub
Set myRng = Selection
 Application.DisplayAlerts = False
 On Error Resume Next
 Set Dest =...続きを読む

QExcelで順番を逆に

Excelで1,2,3,4,5のように入力されている行(または列)を5,4,3,2,1のように逆順に並べ替えるにはどういうコマンドを使ったらいいでしょうか。

宜しくお願いします。(Win98、Excel2000)

Aベストアンサー

列で説明しますが、行でも同様にできます。
セルA1~A5のデータをひっくり返すとします。
・B1~B5(となりのセル)に1,2,3,4,5と入力
・A1~B5を範囲指定
・メニューバーから データ-並び替えを選択
・「最優先されるキー」をB列にし、降順を指定して実行

これで、A列がひっくり返ります。

もし、となりのセルが開いてなければ、変わりに例えばJ1~J5を使ってもできます。このときは、範囲指定するときに まず、A1~A5を指定。次にCtrlを押しながらJ1~J5を指定 すればOKです。

Qexcel 左右対照入れ替え

初めて質問させて頂きます。
excelで困っていることがあり質問させて頂きました。
excel シートに入力されている内容を左右対照入れ替えしたいのです。

簡単に書きますと、
A1 に 数字の1
B1 に 数字の2
C1 に 数字の3
D1 に 計算式 =A1+ B1 + C1

と入力してあるファイルがあったとして、それを

A1 に 計算式 =A1+ B1 + C1
B1 に 数字の3
C1 に 数字の2
D1 に 数字の1

と左右対称に入れ替えたいのです。
なんらかの方法は無いでしょうか?
宜しくお願い致します。

Aベストアンサー

#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!という参照が付いてうるさいので、仕方なく取り除いています。

#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).Repl...続きを読む

Q表の上下を入れ替える

エクセルで作成した表を、あとから見たら、
「上下逆のほうがよかったなぁ」と思いました。

上下を入れ替えることってできますか?

Aベストアンサー

いくつかの行があって、その上下の順序を変えるということであれば、

表の横の列に、1,2,3,・・・に数字を入れて、
入れ替えたい範囲を選んで、
「データ」→「並べ替え」→「キー」に上に数字の列を選んで、
降順のチェックを入れて、OKを押す。

他にスマートな方法があるかもですが、私はそうしてます。

Qエクセル 表の反転について

エクセルで作成した表を、鏡に移したような感じで反転させて使用したいのですが、どのような操作をすればよいのでしょうか?
反転させた後も編集を行いたいので、図として左右反転するという方法ではダメでした・・・
どうか、よろしくおねがいします。

Aベストアンサー

何で図として左右反転だとダメなのでしょうか?

セルの値を変えても図形は反映されます
1. A1:D5セル範囲をコピー
2. [Shift]押しつつ 編集 メニュー 図のリンク貼り付け
3. 図の左右反転
添付図参照

Qエクセルで列を逆順に表示し直したい

エクセルの表でA列、B列、C列、…を…、C列、B列、A列と列を逆順に表示し直したいのですが、簡単に変換できる方法はないでしょうか。いちいち切り取り、貼り付け等をするのが面倒です。

Aベストアンサー

普通ソートは列を選んで行を入れ替えしますが,その逆も出来ます。

取りあえず
1行目全てを選択→右クリック→挿入
で新しい行を挿入します。
A1セルに1を入力し,A1セルのハンドルをドラッグさせて,
1 2 3 4 5 6 7 8 9 10 …
と1行目に通し番号を入力します。

1行目からデータの入っている最終行まで"行"を全て選択
→「データ」→「並べ替え」で「並べ替え」ダイアログボックスを出し,

「オプション」で「方向」を「列単位」にチェックを入れ「OK」。
最優先されるキーを「行1」にして「降順」でソートをかけると,
列の入れ替えができます。

慣れないことをして,データの順を狂わせると困りますから,
そのデータのコピーかどうでも良いデータで実験,練習してから,本番データをソートしてください。

Qexcelのセル内の文字を180度回転(上下逆)にすることはできますか?

会議用の席札を作るのに,山折りにして両側に肩書き+氏名が出るようにしたいので,一部のセルの文字を逆さまにできれば便利だなあと思うのですが,セルの書式設定では横向きにしかできません。

形式を選択して貼り付け→半分を右向き,半分を左向きに90度回転させると,文字の間隔が違うようでもとの大きさの文字では入りきらず,修正の必要があるようです。

もちろんこの方法で作ることは可能なのですが,もしセル内の文字を180度回転する方法をご存じの方がいらしたら教えていただけないでしょうか。
できない,ということを確実にご存じであれば,その旨教えていただければ助かります。
よろしくお願いいたします。

Aベストアンサー

色々、やり方は有りますが、こんなのはどうですか

まず、普通に「肩書き」「氏名」を入力し、大きさを整えます
次に、それらのセルを範囲指定しコピー
次に、Shiftキーを押しながら、メニューの編集をクリックすると
「図のリンク貼り付け」が出てきますので、それで適当な位置に貼り付けて
位置を調整し、枠の真ん中の上に出ている色つきの丸をクリックして、回転させると、逆さまにする事が出来ます

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルで反転コピー

本来のエクセルの使い方とは違うのですが、
織物の図面を作成しています。
セルの幅を正方形にちじめて、
色をひとつづつつけていくやり方で
デザイン作成しています。
結構200×400ぐらいのマスの大作です。
そこで、反転した絵を作る場合
コピーで反転できないかとの悩みです。
わかりにくいかもしれませんが
左半分を色をつけ(今回は記号で表しています。)
--*
***
--*
コピーして反転できないかというものです。
--**--
******
--**--
カメラ機能でやってみましたが、その後に絵柄を付け加えたい
場合もあるので、試して使えないと思いました。

感じとしては行列を入れ替えて貼り付けするって方法なのですが
90度しか反転しません。
180度回転させてコピーしたい場合簡単にできないものでしょうか?

Aベストアンサー

美しいものを見せていただきありがとうございます。

さて、整理すると線対象に右側に同じ色をつけるということで考えましたが
VBA(マクロ)でやるのが簡単かと思いました。
マクロを使われたことがないという前提で説明します。

ブックを開いて Altキーを押しながらF11を押します。
マクロの画面が開きます。
上部のツールバーから「挿入」-「標準モジュール」とします。
コード(プログラム)を入力するシートが開きます。
下のコードをコピーして貼り付けます。(Option から End subまで)
×をクリックしてマクロの画面を閉じます

Option Explicit
Option Base 1
Sub 反転()
Dim 列数 As Integer
Dim 行数 As Integer
Dim 開始列 As Integer
Dim 反転開始列 As Integer
Dim 開始行 As Integer
Dim i As Integer
Dim j As Integer
列数 = Selection.Columns.Count
行数 = Selection.Rows.Count
開始列 = Selection.Column
開始行 = Selection.Row
反転開始列 = 開始列 + 列数
For i = 開始行 To 開始行 + 行数 - 1
For j = 1 To 列数
Cells(i, 反転開始列 + 列数 - j).Interior.ColorIndex = Cells(i, 開始列 + j - 1).Interior.ColorIndex
Next
Next
End Sub

通常のExcel画面で「マクロ」-「マクロの表示」とします
マクロ名に 反転 と出ているところで「オプション」をクリック
マクロオプションの画面でショートカットキーにqと入力します。
OKをクリック
マクロの窓を閉じます。

これで準備OKです
反転したい範囲を指定してCtrlキーを押しながらqを押します。(マクロの起動)
指定された範囲の右側に反転された図形が現れます。

本当はマクロと図形のブックを分けたほうがいいのですが説明が煩雑になり敷居が高くなるかなと思いこうしました。
(これでも十分高いかもしれませんが)

美しいものを見せていただきありがとうございます。

さて、整理すると線対象に右側に同じ色をつけるということで考えましたが
VBA(マクロ)でやるのが簡単かと思いました。
マクロを使われたことがないという前提で説明します。

ブックを開いて Altキーを押しながらF11を押します。
マクロの画面が開きます。
上部のツールバーから「挿入」-「標準モジュール」とします。
コード(プログラム)を入力するシートが開きます。
下のコードをコピーして貼り付けます。(Option から End subまで)
×...続きを読む


人気Q&Aランキング

おすすめ情報