痔になりやすい生活習慣とは?

  A  B
1 a1
2 a2
3 a3
4 a4
5 a5
・・・・・
のような表において、
Bの列にB1=a1、B2=a3、B3=a5
のような2個飛ばしのデータを連続で抜き取る方法はありますでしょうか。
A列が3000行ほどあり手打ち入力がしんどいです。
OFFSET関数を使ってもうまく連続コピーされません。
どなたかご教授願います。

A 回答 (4件)

OFFSET関数利用でもよいが、INDEX関数のほうが普通かな。


=INDEX($A$1:$A$100,(ROW()-1)*2+1,1)
100はデータ数が多い場合はデータ行数に変える。
例データ A1:A5
a1
a2
a3
a4
a5
B1に上記。データ数の半数の行数を複写。
結果
a1
a3
a5
    • good
    • 14
この回答へのお礼

これもすごい!
またまたできました。
INDEX関数初めて使用しましたが便利ですね。
イメージし易い関数だと思いました。
ROW関数をからめた数式は今後も役に立つと思います。
ありがとうございました。

お礼日時:2009/07/30 13:20

追記。



(ROW()-1)*2
の部分を
(ROW()-1)*3
とか
(ROW()-1)*4
とかにすれば「2行飛ばし」「3行飛ばし」も可能。

A$1
の部分が「基準点」なので
  A B
1 (略)
  (略)
6 (略)
7 a1 a1
8 a2 a3
8 a3 a5
8 a4 a7
8 a5 a9
のように7行目から始めたいなら
A$1

A$7
に変えればよい。
    • good
    • 7
この回答へのお礼

これもすごい!
見事にできました。
行数に関数が入れられるとは。。。
私には到底思いつかない手法でした。
ありがとうございました。

お礼日時:2009/07/30 13:11

=OFFSET(A$1,(ROW()-1)*2,0,1,1)


をB1セルに入れて、B1セルを「セルのコピー」で下方向に1600行辺りまでコピー
    • good
    • 9
この回答へのお礼

返答遅れて申し訳ありません。
今まで気がつかすにいました。
ありがとうございました。

お礼日時:2011/02/22 16:03

B1に、#A1


B2に、#A3
B1とB2を選択
選択枠の右下角の■(フィルハンドル)を下方に必要行までドラッグ
セル範囲選択状態のまま、編集メニューの「置換」で
#

=
に「すべて置換」
    • good
    • 20
この回答へのお礼

すごい!
こんな発想があったなんて。
おかげで一発解決しました。
ありがとうございました。

お礼日時:2009/07/30 12:00

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

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

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

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

QEXCEL 1つ飛ばしのセル参照

A1には「=B1」
A2には「=B3」
A3には「=B5」・・・
というように、参照先の列を1つ飛ばしにしていく場合、
簡単にコピーしてA列を作る方法を教えてください!!

Aベストアンサー

>A1には「=B1」
>A3には「=B2」
>A5には「=B3」であればどうなりますか?

A2、A4・・・は空白という意味であれば、A1に
 =IF(MOD(ROW(),2)=1,INDIRECT("B"&INT(ROW()/2)+1),"")
下方にフィルコピー

QExcelで連続データを行飛ばしで反映させるには?

Excelのオートフィルの様な機能を利用して、連続するデータを二段飛ばしの行に反映させることは可能でしょうか?
たとえば、セル「A1・A2・A3…」に「10・20・30…」とあった場合、セル「B1・B4・B7…」に「10・20・30…」と入力したいのです。
Aセルのデータは固定値ではなく、良く変動します。
また、セル「B2・B3」に当るところにも他のデータが入ります。
何か解決策があれば教えてください。宜しくお願いします。

Aベストアンサー

標準モジュールに

Sub test1()
  Dim crng As Range
  Dim rng As Range
  Set rng = Range("a1", Cells(Rows.Count, "a").End(xlUp))
  For Each crng In rng
   With crng
     Cells(3 * .Row - 2, "b").Value = .Value
     End With
   Next
End Sub
当該シートをアクティブにして、Test1を試してみてください

Q別シートのセルを3つ飛ばしで引用したいです

初心者の為、説明不足になりましたらすいません。

Excel2007を使用しているのですが、別シートのセルを3つ飛ばしで引用したいのですが出来なくて困っています。

例えて言うと・・・

シート名:商品別

     列A   列B  列C

行1   商品1  単価  2000
行2       販売数 20
行3       売上  40000
行4   商品2 単価  1000
行5       販売数 10
行6       売上  10000
     ・
     ・
     ・


というシートの、売上の金額の部分だけ(例ではセルC3、C6・・・)別のシートに

シート名:売上一覧

     列A   列B

行1   商品1  40000
行2   商品2  10000
行3   商品3 25000
     ・
     ・
     ・
というように列Bに引用したいのですが、3つ飛びなのでオートフィルでは
=商品別!C3
=商品別!C4
=商品別!C5
・・・

となってしまいます(泣)
手入力で
=商品別!C3
=商品別!C6
=商品別!C9
・・・

と入力すればよいのですが、引用しなきゃいけない行が1000行あるし
他のシートでも同様の事をしなければいけないので、関数を使用して
入力する方法があったら教えて欲しいです☆

どうかお知恵を貸して下さい☆

よろしくお願いします☆

初心者の為、説明不足になりましたらすいません。

Excel2007を使用しているのですが、別シートのセルを3つ飛ばしで引用したいのですが出来なくて困っています。

例えて言うと・・・

シート名:商品別

     列A   列B  列C

行1   商品1  単価  2000
行2       販売数 20
行3       売上  40000
行4   商品2 単価  1000
行5       販売数 10
行6       売上  10000
     ・
     ・
     ・


というシートの、...続きを読む

Aベストアンサー

≪隣の列が空白あるいはデータが連続していない場合≫
B1に、=商品別!C3 と参照式を入力
参照式の頭に#を入力、#=商品別!C3
名前ボックスに、B1000 と入力
Shift+Enter でB1:B1000を選択
F2キーでアクティブセル(B1)を編集モードにする
Ctrl+Enter でB1:B1000に #=商品別!C3 が入力される
B2に、#=商品別!C6 と入力
B1:B2 を選択し、選択枠の右下角の■(フィルハンドル)をダブルクリック
#=商品別!C3
#=商品別!C6
#=商品別!C9



オートフィル範囲が選択状態のまま
編集メニューの「置換」で
#=

=
に「すべて置換」

Qエクセルで数行おきにデータを抽出

エクセルシートで、あるデータ膨大にを出しますよね。
それで、たとえば、三行ごと、四行ごととかであるデータを右の行もしくは左行に抜き出す操作をするにはどうしたらいいですか?
今は、フィルタと可視フィルタを駆使してやっているのですが、一発でバンと出すような方法があると思って・・・数式とかでありそうだなって思って。
教えてください。、

Aベストアンサー

=OFFSET(抽出したい列の一番初めのセルの絶対参照,(ROW(A1)-1)*行間隔,0)
又は
=INDEX(抽出したいセルの範囲の絶対参照,(ROW(A1)-1)*行間隔+1,1)

Qエクセル コピーしたデータを1行おきに貼り付け

エクセル2003を使っております。
コピーしたデータを1行おきに貼り付けたいのですがやり方がわかりません。あと、1つのセルに対して2行ごとに結合したいのですがどのようにすればいいのか。教えてください。よろしくお願いします。

Aベストアンサー

>1行おきに空白があるデータがありまして、それにコピーしたデータ
を貼り付けたいのです。
あいまいにならないように、実例を質問に挙げること。
例えば
コピー先 -は空白行を示す(1)は行番号
A列
(1)12
(2)ー
(3)15
(4)ー
(5)8
(6)ー
(7)5
ーー
(A)上記のーのセルに
(B)1回の操作で
貼り付けたいのだな。
ーー
ここへコピー元はどういうデータですか。
D2:D8に(-は空白セル)
a

b

c

d
なら
D2:D8をコピー
A2を選択
編集ー形式を選択して貼り付け
空白を無視する、にチェック
で貼り付け。
ーーー
結果
12
a
15
b
8
c
5
d
こんなことか?。質問の書き方をむしろ勉強してほしい。

Qエクセルで1列おきのデータのみコピペする計算式

エクセルで、A1:Z1に金額が入っています。
A1、C1、E1、G1、I1・・・・・の1列おきのデータだけが
A2、B2、C2、D2、E2、・・に入る様な計算式をおしえて頂きたく宜しくお願い致します。

Aベストアンサー

A2セルに
 =OFFSET($A$1,0,(COLUMN(A1)-1)*2)
を貼り付けて、そのセルを右方向にコピーしてはいかがでしょう

Qエクセルで、別シートの2行おきのデータ参照するには?

下記のようなデータがシート1からシート2に取り出す場合の良い方法ありませんか?
データが少しなら、手入力で数式を入力が可能なのですが・・。
○行おきの合計などは、過去の質問であったのですがよろしくお願いします。

 シート1    シート2
   A      A
 1 あ    1 あ
 2 ア    2 い
 3 a    3 う
 4 い    4 ・
 5 イ    5 ・
 6 i
 7 う
 8 ウ
 9 u

Aベストアンサー

=OFFSET(Sheet1!$A$1,(ROW(A1)-1)*3,0)

Qエクセルでのセル飛ばしのコピー

B2セルに入っている計算式をコピーして、B2,B4,B6,B8,B10・・・へコピーしたいのですが
B3,B5,B7,B9,B11・・・には異なる参照式が入っています。ですので、そのまま簡単にコピー
できません。

奇数セルには他シートから@SUMPRODUCを利用して抽出した数値。
偶数セルには奇数セルの数値を参照し、掛け算を行う数式です。

複数のシートを作らなくてはならなくなってしまい、困っております。
いい方法がありましたら、ご教授願います。
よろしくお願いいたします。

Aベストアンサー

こんばんは!

>B3,B5,B7,B9,B11・・・には異なる参照式が入っています。
というコトは
B2・B4・・・と偶数行にはフィル&コピーで数式を入れたい!
ただし、B3・B5・・・と奇数行には手を加えたくない。というコトでしょうか?
一例です。
少し手を動かす必要があります。
どの列でも良いのですが作業用の列を使います。
今回はB列の操作なので、B列を挿入 これで元のB列がC列に移動します。
B2セルに
=MOD(ROW(),2)
という数式を入れ必要数分だけフィルハンドルで下へコピーしておきます。
次にB列の「0」でオートフィルタを掛けます。
これで偶数行だけが表示されますので、B2セルのフィルハンドルで下へコピーしてみてください。
最後にオートフィルタを解除 → B列すべてを削除して完了です。

※ 他に良い方法があればごめんなさいね。m(_ _)m

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【Excel】4つとばしで合計する方法

たとえば、
A4セルからA8・A12・・・A96
と言う具合にA4から4つ毎の合計を計算したいとします。
私は関数が思い浮かばず、
=A4+A8+A12+・・・+A96
と入力してしまうのですが、簡単に集計する方法があれば教えてください。

よろしくお願いいたします。

Aベストアンサー

=SUMPRODUCT((MOD(ROW(A1:A96),4)=0)*(A1:A96))

・・・これでイイかな?
(確認していませんので適宜修正してください。というか全く使えないかも)

ROW関数で指定したセルの行番号を取得、
それをを4で割った余り(MOD関数)が
0であれば、1
0でなければ、0
その行に対応するセル内の数値を掛けて積算
(この辺りは「絵を描いて」「目で見て」確かめながら読んでください)


>=A4+A8+A12+・・・+A96
これは参照元のセルの個数が多すぎて、Excel2003以前では使えないことがありますね(32個まで)
よく分からないときには作業用の列を用意し、そこに数値を出すようにして
その列で積算するなどの処置をしてみましょう
難しく考えなくても簡単な方法で対処できるのであれば、それだって正解ですからね
(他の人に聞いて回答を待つ間にできてしまうこともあります)


#あとはSUMIF関数を使って答えてくれる人が現れることに期待


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

人気Q&Aランキング