プロが教えるわが家の防犯対策術!

Excelのすばらしい機能に相対参照を使った連続コピーがあります。例えば、=A1 を横方向にコピーすると =B1 =C1 ・・となり、縦方向だと=A2 =A3 ・・となります。 ところで、これを横方向にコピーしたとき =A2 =A3 ・・、縦方向に=B1 =C1 ・・になる方法ってないでしょうか?
「形式を選択して貼付け」の[行列を入れ替える]では『値』では有効なのですが『数式』だとうまくいきません。数式で行列入替する方法を教えて下さい。

A 回答 (3件)

No.2で答えた者ですが,もっと簡単な方法がありました。



セルの表示形式はデフォルトの「標準」ままでかまいません。
まず,「=A1」と入力するセルに「あ=A1」と入力し,それを縦方向に連続コピーします。
「あ=A1」,「あ=A2」,…  となるはずです。
これを「形式を選択して貼付け」の[行列を入れ替える]で単純にそのまま貼り付け,貼り付けた先のせるを選択し,
「あ」を「」(←文字無記入)に置換してやるとできます。

最初したとき,
『セル内には「=A1」,「=A2」… になっているのに,なんで表示が「あ=A1」,「あ=A2」,…  なんだろう???』
とあせってしまいましたが,何の事はない,最初に書いた「あ=A1」,「あ=A2」,…  というセルが「=A1」,「=A2」… によって参照されてるだけでした。
    • good
    • 27
この回答へのお礼

ありがとうございました。[置換]を使うことまでは思いつきませんでした。縦方向、横方向とも数式の行列入替コピーがすっきりとできました。ホントにいいアイデアでした。ありがとうございました。

お礼日時:2005/03/12 18:48

いつも我流でExcelと格闘してるため,ちゃんとした方法かどうかわかりませんが,できるので一応。



まず,=A1と書き込むセルの書式設定を「文字列」にし,=A1と書き込みます。
この時点で,セルには=A1と表示されていると思います。
これを縦方向に連続コピーし,できた列を「形式を選択して貼付け」の[行列を入れ替える]で単純に貼り付けたあと,そのセルの表示形式を「標準」にします。

これで,表示が計算結果の値ではなく=A1,=A2,… のままであれば,そのセル1つ1つをダブルクリックして,リターンすると数式として扱われるようになります。

でも,セルが多くて手間な場合は
そのセル全体を選択し下のマクロを実行させます。

Sub Enter_Values()
For Each xCell In Selection
xCell.Value = xCell.Value
Next xCell
End Sub

このマクロは単純なもので,今まで自作してやってましたが,ココ↓にも出てました。
http://support.microsoft.com/default.aspx?scid=k … 

参考URL:http://support.microsoft.com/default.aspx?scid=k …
    • good
    • 4

勘違いしているかも知れませんが、


例えば、
A1:C3にデータがあるとき
D1に
=OFFSET($A$1,COLUMNS($D$1:D1)-1,ROWS($D$1:D1)-1)
と入れると、
横にコピーすると、縦のデータが
縦にコピーすると、横のデータが参照できます
transpose関数を使うこともできます。
同じ条件の時
=TRANSPOSE(A1:C3)
をD1:F3の範囲でSHIFT+CTRL+ENTERで配列式として入力します。
    • good
    • 2
この回答へのお礼

ご教示ありがとうございました。OFFSET関数を使った方法で試してみたらうまくいきました。ただ、意味的にはまだピンときていませんので、もう少し勉強します。TRANSPOSE関数のもは、手持ちの解説書にこの関数が載っていないこともあり、#VALUE!にしかなりません。SHIFT+CTRL+ENTER云々のことも解りません。もっと勉強します。ありがとうございました。

お礼日時:2005/03/12 18:35

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

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


このQ&Aを見た人がよく見るQ&A