dポイントプレゼントキャンペーン実施中!

今下のようになってます。

 A
1 あ
2 い
3 う
4 え
5 お
6 か
7 き
8 く

これを次のようにしたいのですが、どのようにすればよいのでしょうか?

 A B
1 あ い
2 う え
3 お か
4 き く

A 回答 (3件)

#1です。


先の回答の数式を解説すると、
「ROW()」は( )内の参照先セル(省略した場合は入力されているセル)の行番号を返す関数
「INDIRECT()」は( )内の文字列が指定している参照を返す関数です。

つまり「=INDIRECT("A"&ROW()*2-1)」は、
「A+(そのセルの行番号×2-1)」が示す参照値、ということです。

ですからB1に上記式を入力した場合、
「A+(1×2-1)」で「A1」の示す値、すなわち「あ」が表示されることになります。
同様にC1に「=INDIRECT("A"&ROW()*2)」と入力すると、
「A+(1×2)」で「A2」となり、「い」が返ります。

ここでA1がA61となった場合は、
「A+(そのセルの行番号×2-1)」の部分が「A61」に
「A+(そのセルの行番号×2)」の部分が「A62」になるように、数式を書き換えます。

B61、C61に数式を入力する場合、
61×2-61=61、61×2-60=62
となりますので、数式は
=INDIRECT("A"&ROW()*2-61)
=INDIRECT("A"&ROW()*2-60)
となります。

なお「×2」の部分を「×3」にして数を調整すると、3行に分ける場合にも対応できます。

*******************************

と、ここまで書いたところで、上記式の場合、もしA列を隠してB・C列を数式のまま使おうとした際に、行の追加・削除で行が移動した場合に、参照がずれてしまうことに気が付きました。
値の貼り付けで上書きされる場合は上記の式で構いませんが、もし数式のまま使われる場合は、B61、C61を
=INDIRECT("A"&ROW()*2-(ROW($A$61)))
=INDIRECT("A"&ROW()*2-(ROW($A$61))+1)
として下さい。
    • good
    • 0
この回答へのお礼

詳しいご説明、まことにありがとうございます。
この方法で、業務が大変楽になりました。
感謝致します。

お礼日時:2004/07/05 10:36

A列にデータがあるとして


(テスト過程)
B1に=(ROW()-1)*2+1といれ下へ複写します。
C1に=ROW()*2といれて下へ複写します。
B1:C5(一部です)は
12
34
56
78
910
となります。
この並びに整列すれば良いのですね。
(本番)
B1に=OFFSET($A$1,(ROW()-1)*2+1-1,0)
即ち=OFFSET($A$1,(ROW()-1)*2,0)といれて
B2以下に複写します。
C1には=OFFSET($A$1,ROW()*2-1,0)といれてC2以下に
複写します。
(結果)一部である、B1:C5は
あい
うえ
おか
きく
けこ
(注)
他シートに2列化したい時はSheet2のA1に
=OFFSET(Sheet1!$A$1,(ROW()-1)*2,0)
B1に=OFFSET(Sheet1!$A$1,ROW()*2-1,0)
として下に複写すれば良い。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
A1からデータが並んでいると、この方法でも
うまくいきました。

お礼日時:2004/07/05 10:35

B1に =INDIRECT("A"&ROW()*2-1)


C1に =INDIRECT("A"&ROW()*2)
と入力して以下コピー。

A列が不要であれば、A列右クリック→表示しない、で隠すか、
B,C列を選択してコピー、A1右クリック→形式を選択して貼り付けで「値」を選択して貼り付け、その後C列削除
でいいと思います。

この回答への補足

例題は分かりやすくA1から始めましたが、
実際は、A61からA68までに"あ"から"く"があり、
  B C
61 あ い
62 う え
63 お か
64 き く
のように表示したいのですが、その場合は
どうすればよいでしょうか?
A1に張り直せば教えていただいた方法で、できるのですが、
数が多いので、直接処理したいです。

補足日時:2004/07/02 16:58
    • good
    • 0

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