[[20030214113208]] 『横にセル単位で入力した値を縦に並びかえ』(まきぞう) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『横にセル単位で入力した値を縦に並びかえ』(まきぞう)

質問させていただきます。A1に”1”B1に”2”C1に”3”D1に”4”・・・・・・

と入力した値を別シートへA1に”1”A2に”2”A3に”3”A4に”4”・・・・・・

と並びかえは可能でしょうか。

また、2行目、3行目の値を別シートに縦に並び替えは可能でしょうか。

もし、お判りの方がいらっしゃれば宜しくお願いいたします。


まきぞうさん。こんにちわ。

コピーして、貼り付けるときに「右クリック」して「形式を選択して貼り付け」を選び、

一番したの「行列を入れ替える」にチェックを入れて貼り付けると、おそらくご希望の状態で貼り付くと思います。

<<NICKA>>


NICKAさん

ありがとうございます。確かにコピー⇒貼り付けの時「右クリック」して「形式選択して貼り付け」の中に「行列を入れ替える」をチェックすることによって、別シートに縦に貼り付けることが出来ました。

ただ・・・・申し訳ありません。

質問の情報が少なかったようです。                           

                                           A1に10 B1に2 C1に87 D1に11 ・・・・・・・HF1に44 このような値が100行あります。 ワークシートにA1〜HF1の値を別ワークシートへ縦に値を設定し、A2〜HF2の値についても、さらに別ワークシートへ縦に値を設定したいと考えています。

ちなみに、値については縦も横もデータが追加されていきます。

全て手作業は大変なので、簡単にはできればと思うのですがやはりコツコツやらないといけないでしょうか?


 『現在の元表がA1:HF100で今後行、列に随時データを追加して、別シートに「行列を入れ替える」を自動化したい。』

この場合は TRANSPOSE関数で可能だと思います。

最初に「行列を入れ替える」範囲を選択します。元表がA1:HF100ですから行が100、列がHFは214になります。

従って行列逆転範囲は100列目はCVですから、A1:CV214となります。

例えばSheet1のA1:HF100にデータがあれば、Sheet2のA1:CV214を選択して

 =TRANSPOSE(SHEET1!A1:HF100) と入力してCtrlキーとShiftキーを押しながらEnterキーで確定します。

確定結果の式は行列数式の中括弧で囲まれた式{=TRANSPOSE(SHEET1!A1:HF100)}になります。

式の一部をDelしたり、編集はできません。

再度編集する場合は元の範囲を選択して、「F2」を押して編集状態にして、式変更後Ctrl+Shift+Enterで確定します。

これで、元表の行列入れ替えした結果が表示されます。

何だか複雑な説明になりましたが、行列番号を「R1C1参照形式」に設定した方が理解しやすいと思います。

ツールメニューのオプション「全般」【R1C1参照形式を使用する】にチェックを入れます。

これで、行列番号は数字になります。上記の式も{=TRANSPOSE(SHEET1!RC:R[99]C[213])}になります。

元データの行、または列を追加した場合は元表の行列番号を見て、列番号を行に行番号を列に範囲を選択し、

{=TRANSPOSE(SHEET1!RC:R[99]C[213])}の式を「F2」を押して編集状態にして、

元表のR(row)行C(column)列の数値を1引いた数に変更して、Ctrl+Shift+Enterで確定するだけで更新できます。

事前に、余分に元表範囲を想定して実行すれば未入力範囲は 0 表示されます。

気になるようでしたら、ツールメニューのオプション「表示」【ゼロ値】のチェックを外して下さい。

 (シニア)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.