アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで表を作成していて困っているのですが、

A1,C1,E1・・・と、列番号が1つ飛びのセルの数字を
B1,B2,B3・・・に順番に貼り付けていきたいのです。

数式でB1=A1、B2=C1と一つずつなら書き込むことで
可能ではありますが、同じ数式で貼り付ける等の
上手い方法があれば教えてください。

A 回答 (7件)

訂正の訂正。



=INDIRECT("Sheet1!"&ADDRESS(1,ROW()*5-18))
ではなく
=INDIRECT("Sheet1!"&ADDRESS(4,ROW()*5-18))
です。
    • good
    • 0
この回答へのお礼

丁寧な御説明ありがとうございます。
ようやく数式が合致しました!!
chie65536さん、ありがとうございました!!

お礼日時:2008/05/23 18:50

訂正。



ROW()*5-3
ではなく
ROW()*5-18
です。同様に
=INDIRECT("Sheet1!"&ADDRESS(1,ROW()*5-2))
ではなく
=INDIRECT("Sheet1!"&ADDRESS(1,ROW()*5-18))
です。

なお
=INDIRECT("Sheet1!"&ADDRESS(1,ROW()*5-18))
は「1~3行目には置けない」です。「ROW()*5-18」は「1~3行目に置くと、負の数になる」のでエラーになります。
    • good
    • 0

=INDIRECT(ADDRESS(1,ROW()*2-1))


について。

ROW()
は「それが書いてある場所の行番号」です。
1行目に書けば「1」
2行目に書けば「2」
3行目に書けば「3」
です。

ROW()*2
は「それを2倍」です。
1行目に書けば「2」
2行目に書けば「4」
3行目に書けば「6」
です。

ROW()*2-1
は「そこから1を引く」です。
1行目に書けば「1」
2行目に書けば「3」
3行目に書けば「5」
です。

ADDRESS(行番号,列番号)
は「指定した行、列の、セル参照文字列を作る」です。
1行目の1列目を指定すると「$A$1」
1行目の3列目を指定すると「$C$1」
1行目の5列目を指定すると「$E$1」
です。

従って
ADDRESS(1,ROW()*2-1)
は「それが書いてある場所の行に従って、セルの列が変化する文字列を作る」です。
1行目に書けば「$A$1」
2行目に書けば「$C$1」
3行目に書けば「$E$1」
です。

INDIRECT(文字列)
は「文字列で指定した位置にあるセルの内容を返す」です。
文字列に$A$1を指定すれば「A1セルの中身」
文字列に$C$1を指定すれば「C1セルの中身」
文字列に$E$1を指定すれば「E1セルの中身」
です。

従って
INDIRECT(ADDRESS(1,ROW()*2-1))
は「それが書いてある場所の行に従って、列を変化させて、指定した位置にあるセルの内容を返す」です。
1行目に書けば「A1セルの中身」
2行目に書けば「C1セルの中身」
3行目に書けば「E1セルの中身」
です。

>B4,G4,L4・・・と、列番号が5列ずつで、
>別シートのB4,B5,B6・・・へ順位貼り付けたいです。
であれば
4行目にあれば2(B列の列番号は2)
5行目にあれば7(G列の列番号は7)
6行目にあれば12(L列の列番号は12)
ですから
ROW()*2-1
ではなく
ROW()*5-3
です。そして、参照するのは別シートになりますから「$B$4」ではなく「Sheet1!$B$4」などのように、シート名も付けなくてはなりません。

参照元シート(B4、G4、L4があるシート)のシート名が「Sheet1」の場合は、
=INDIRECT("Sheet1!"&ADDRESS(1,ROW()*5-2))
を、別シートのB4、B5、B6へ貼りつけて下さい。
    • good
    • 0

NO3です。


>B4,G4,L4・・・と、列番号が5列ずつで
⇒こんな感じでしょうか。
 =INDEX(別シート!$4:$4,1,(ROW(A1)-2+ROW(A1))*2+ROW(A1)+1)

この回答への補足

申し訳ありません。
エラーになってしまいます。

補足日時:2008/05/23 17:59
    • good
    • 0
この回答へのお礼

私のために時間を割いてくださり、
誠にありがとうございました!!
お陰様で解決しました!!

お礼日時:2008/05/23 18:51

NO2です。


>実際はA1,F1,K1・・・と5列ずつ
⇒最初から5列と記載すべきではないでしょうか。
=INDEX($1:$1,1,(ROW(A1)-2+ROW(A1))*2+ROW(A1))

この回答への補足

やはり、実際が違うためか、稼動しませんでした。
ですので、実際の配列を表記させていただきます。

B4,G4,L4・・・と、列番号が5列ずつで、
別シートのB4,B5,B6・・・へ順位貼り付けたいです。

何度も申し訳ありません、御検討願います。

補足日時:2008/05/23 13:32
    • good
    • 0
この回答へのお礼

mu2011さん、お手数掛けまして申し訳ありません。
これほどの複雑な数式だと想定しておりませんでしたので。
ただ今、自分の表で数式が稼動するか実施中です。

お礼日時:2008/05/23 13:28

一例です。


B1に=INDEX($1:$1,0,ROW(A1)+ROW(A1)-1)を設定、下方向にコピーで如何でしょうか。
    • good
    • 0
この回答へのお礼

素早い対応ありがとうございます。
質問では分かりやすくA1,C1,E1と例を挙げましたが、
実際の私の表に当てはめようとしても
上手くいかないのです。。。
実際はA1,F1,K1・・・と5列ずつなので、どのように
その数式が変換されていくのですか??

お礼日時:2008/05/23 12:26

B1に


=INDIRECT(ADDRESS(1,ROW()*2-1))
の式を書いて、下方向のB2、B3、B4~に必要なだけセルのコピー。
    • good
    • 0
この回答へのお礼

素早い対応ありがとうございます。
質問では分かりやすくA1,C1,E1と例を挙げましたが、
実際の私の表に当てはめようとしても
上手くいかないのです。。。
INDIRECTやADDRESS、ROWなど、意味や根拠などを
付けて頂けるとありがたいです。

お礼日時:2008/05/23 12:24

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