- 締切済み
EXCELで行ごとの置換を簡単に行う方法は?
EXCELで式の一部を行ごとに置換する簡単な方法を探しています。 具体的には、以下の3行目、4行目で、A列のコードに合わせて、D列、E列の式の「2175」の部分をそれぞれ、3行目なら「2413」に、4行目なら「3415」に置換したいです。 A列 D列 E列 1 Code 名称 株価 2 2157 =RSS|'2175.T'!銘柄名称 =RSS|'2175.T'!現在値 3 2413 =RSS|'2175.T'!銘柄名称 =RSS|'2175.T'!現在値 4 3415 =RSS|'2175.T'!銘柄名称 =RSS|'2175.T'!現在値 実際の行数は3000以上あるため、それぞれの行ごとに手作業で置換していくのは手間がかかりすぎるので、何か簡単に置換する方法をご教示いただきたいです。 どうか、よろしくお願いします。 当方、EXCELのバージョンは2013、Windows8.1です。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- tsubu-yuki
- ベストアンサー率46% (179/386)
株の話とか、 自分の金儲けのためなんだから 3000行くらい手間にならんでしょ。 置換したらいいじゃない(笑)。 で回答を終わらせるのが常なのですが、 関数くらいならいいかぁ、というちょぃとした気紛れで。 私も「式の意味」がサッパリ解らないのですが、 「銘柄コード」「現在値」はきっと名前の定義でもしているのでしょう。 と無理やり信じ込んで C2セル:=INDIRECT("RSS|'"&A2&".T'!銘柄コード") でなんとかなるんじゃないかなぁ、と思いますよ。 式の意味くらいはご自身で考えましょう。 私は株は知らないので、保証は当然しません。
- imogasi
- ベストアンサー率27% (4737/17069)
「簡単に」は、質問者の勝手で、したい内容によって決まること。 そんなに簡単な方法は普通用意されてないよ。 それなら単目的のアプリを探すほかないだろう。 ーー 処理全体をVBAでやってしまう方法もあるので、その式で、やる人は多いと思う。株なんかやるのは、金儲けのためで、必死で(VBAの高い講習料を払ってでも)VBAを勉強している人もいるのではないか(受託や講習のWEBの広告も目にする)。質問者もやってみたらどう。 どの銘柄といった人知を超えた、選択を助けるような課題ではなく(AI的ではない)ので、事務処理のようなことは、VBAでも事務処理であって、課題としては簡単な部類だろう。 ーー すでにセルに設定してある、エクセルの関数式について、式の置換という方法がある。 式の一部を変えて、自動でセルに式を設定する方法もVBAにはある。 ある1つの行(の1つのセルが望ましい)について、手作業で式の置換を行い、その際マクロの記録を取る。 質問画像の1行の例で、どうなったかVBAマクロのコードを補足してみてください。 全行に1行ずつ繰り返すコードは、たぶん簡単にできるので、回答しやすいと思う。それをやる気があれば補足してみたら。 又は置換でなく、セルに式を設定する方法もあるので、思考過程を文章にしてくれれば、回答者はVBAで作りやすい。 ちなみにマクロの記録では、繰り返しでは、うまく行かない。改造しなければならない。その改造のやり方は、VBAを組むよりはやさしいと思う。 ーー 例えば現存データの最終行まで繰り返すとき Sub test01() lr = Range("A10000").End(xlUp).Row MsgBox lr '確認のため画面に出してみるもの End Sub のlrで行番号が取得できる。 だから Sub test02() lr = Range("A10000").End(xlUp).Row For i = 2 To lr '処理のVBAコードを書く Next i End Sub のようなロジックになるだろう。 セルB2に=A2+A3の式をVBAで設定するのは Sub test03() Cells(2, "B").Formula = "=a2+A3" End Sub -- (1)式コピー -> その式を修正する (2)関数式をVBAでセット (3)処理をVBAで行う。式はセルに残らない、出ない。 方法がある。上記の部分の、それぞれの箇所で、でドレのことを言っているか注意のこと。
- aokii
- ベストアンサー率23% (5210/22062)
D2セルの場合、まずは、文字列で作っておいて、それをコピーして値のみ貼り付けてみて下さい。 ="=RSS|'"&A2&"'!銘柄名称"
- msMike
- ベストアンサー率20% (364/1804)
素朴な疑問だけど… 「=RSS|'2175.T'!銘柄名称」が Excel の式というのが理解できません。 解説願います。 この式の戻り値が「2175」ですって?なぜ?サッパリポン!