Excelの使い方について、「参照先を変えながら、セルの数値を同時にコピペする方法」を伺いたいです。

画像
補足

なお、 ①A列は全て数値4桁 ②B列はイメージとしてスクショに収まる分だけ手入力したデータ となっています。

Excel123閲覧

ベストアンサー

2

2人がナイス!しています

ご回答ありがとうございます!送っていただいたコードを試してみたところ、まさに理想通りのシートにすることができて驚きました。具体的なコードまでご記入いただいて、本当に助かります。

ThanksImg質問者からのお礼コメント

決めかねましたが、特にマクロのコードについて大変勉強になりましたので、こちらのご回答を選ばせていただきました。 マクロや関数を用いて、複数の方法で自分の行いたい操作を実現できることがわかりましたので、今後は「それぞれの方法の特徴」や、「どの方法がその文脈では適しているのか」など、自分なりに判断できるようになればと思います。 皆様からご回答いただき、本当に助かりました。重ねて感謝申し上げます。

お礼日時:2021/12/1 17:37

その他の回答(3件)

1

下手に検索系の関数とか使うとブックが重くなるだけです。重い関数を使わなくてはいけない理由は「見出しが無い」という事だけです A1に1行、又は一つセルを挿入して見出しにします。 B2セルに数式を入れます。 =IF(A2="",B1,A2) 名前ボックスにB2:B60000とタイプしてエンターキーを押します。 Ctrl+D を押します。一瞬で計算が終わりです。 作業所要時間も2,3分、遅い人でも5分もあればできることです。

画像

1人がナイス!しています

マクロに慣れている人なら数式の入らないマクロのほうがいいですね。 最悪なのは =LOOKUP(10^10,A$1:A1) この数式を試しに60000行入れてみてください。おそらく数秒待たされて数式を削除するのにも数秒待たされます。一昔前の格安セレロンあたりだとハングアップしてブックが壊れるかも(笑) なんでも数式を回答すればいい、ってもんでもないでしょう。

1

A列に7行おきにデータがあるとして 1.数式バーの左端の名前ボックスに __A1:A60000 と入力して[Enter] __(A1:60000の範囲が選択状態でA1のセルがアクティブ) 2.B1のセルに __=OFFSET($A$1,INT((ROW(A1)-1)/8)*8,0) __と式を入力して [Ctrl]+[Enter]

画像

1人がナイス!しています

ご回答ありがとうございます!こちらのOFFSET関数の方法でも試させていただいたところ、まさに理想通りの形になりました。非常にシンプルな方法でExcel初心者の私にもわかりやすく、同時に勉強になりました。 $Aの部分を変えて任意の列を選択できるため、他の列にもご記入いただいた関数を用いて質問させていただいた操作ができることがわかり、大変重宝しております。

1

B1セルには次の式を入力して下方にドラッグコピーすればよいでしょう。 =LOOKUP(10^10,A$1:A1)

1人がナイス!しています

ご回答ありがとうございます!LOOKUP関数を使った方法もあるんですね。データ量の多いシートでは使用が難しいとのことなので、そうでないシートには使いこなせるよう、勉強したいと思います。