• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelについての質問です。)

Excelで特定の条件に基づいてデータを選び出し、別のセルに代入する方法はありますか?

pkh4989の回答

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.3

以下の行を変更してみてください。 Sub 検索()   Dim mR     As Long   Dim wStr    As String   Dim c      As Range   '   With ActiveSheet     mR = .Cells(Rows.Count, "A").End(xlUp).Row     For wI = 1 To mR       wStr = .Cells(wI, "A")       'Set c = .Range("B1:B" & mR).Find(wStr)       ↓       Set c = .Range("B:B").Find(wStr)    '←変更       If Not c Is Nothing Then         .Cells(wI, "D") = .Cells(c.Row, "C")       End If     Next   End With End Sub

starmotoki
質問者

補足

ご回答ほんとにありがとうございます。 おかげさまでここまで仕上げることができました。 何度も補足申し訳ありませんが、 A列の数値は必ずB列にあるはずなのですが、 D列3~6の箇所がどうしても表示されません。   A    B    C   D 1 0    0    0   0 2 0.016  0.001  0   -3 3 0.033  0.002  0 4 0.05   0.003  0 5 0.066  0.004  0 6 0.083  0.005  0 7 0.1   0.006  0   -3 8 0.116  0.007  -1  -3 もしよろしければ解決方法を教えてください。

関連するQ&A

  • エクセルについて

    エクセルの表を作ったのですが、次の処理についてわかる方教えて下さいm(_ _)m ※ 「A1」などの入力内容は、数値ではなく文字。 <作成時> A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4 とデータ入力したものの、D1だけ削り <希望体裁> A1 B1 C1 D2 A2 B2 C2 D3 A3 B3 C3 D4 A4 B4 C4 としたい場合、作成時のD1の場所へD2を入力、D2の場所へD3を入力、D3の場所へD4を入力、ともう一度入力し直すしか方法がないのか、もしくは何かやり方があるのかわからず困っています。。 データ数が極少の場合は再入力すれば済みますが、多い場合は手間ばかりかかってしまいます・・。 少しいじれば、ズラすだけで済むような方法がありましたら、ご教授下さい!

  • エクセルで数値が入力されているセルのアドレス取得

    エクセルである範囲の中から、数値が入力されているセルのアドレスもしくは範囲を取得したいです。      A列  B列  C列  D列  E列・・・ 1行目  20   10    2行目       11        15   10   3行目                25   30  範囲指定 A1:E3 結果 A1,B1,B2,D2,D3,E2,E3     もしくはA1:B2,D2:E3 という結果がでるとうれしいです。よろしくお願いします。

  • エクセルで集計

    エクセルでの合計について教えていただきたいのです。 A1~A10000まで日付が、B1~B10000まで数値が入力されています。 B列の数値を50行ごとに合計し、C列に表示する方法。 現在は、sum関数で手作業です。 簡単に表示できる方法を教えてください。 また、C列に合計のある行をD列(D1・D2・D3・・・)、E列(E1・E2・E3・・・)、F列(F1・F2・F3・・・)に並べたいのです。(50行ごとに間引いて表示するような感じです) 現在は、=C50・=C100・=C150のように手作業です。 もっと多量のデータが入力されたシートもあります。また、100行ごと150行ごとなど合計行が違う場合もあります。 エクセル初心者です。 よろしくお願いいたします。

  • エクセルの操作についてご教示いただきたく

    エクセルの操作についてご教示いただきたく よろしくお願いいたします。 表(3行4列)が2つ(仮に表1、表2)あって、 表1と表2の表中の数値を比較し、異なる数値の場合、色を変えたいのですが 条件付書式でできないでしょうか? もし、ご存知でしたらご教示いただきたくよろしくお願いいたします。 <例> 表1   A  B C D 1 11 12 33 44 2 10 12 14 16 3 22 24 26 28 表2   A  B C D 5 11 12 33 44 6 10 33 14 16 7 22 24 55 28 ※上記の数字全角は行番、A,B,C,Dは列番として見てください。 上記の場合、  B2とB6が異なる数値。また、C3とC7が異なる数値です。  異なる数値についてフォントの色をつけるような設定をしたい。 一つ一つのセルに対して、設定すれば実現可能であることは分かっているのですが、 もっと簡単にできる方法は無いでしょうか? <使用環境> OS  :windows vista EXCEL:Ver.2000

  • エクセルで離れたセルを離れた場所へコピペするには?

    エクセルで 1行目のctrl+コピーで離れたセル(B1,D1,F1)を 3行目(B3,D3,F3)、4行目(B4,D4,F4)、6行目(B6,D6,F6)などに 貼り付けるにはどうすればよいでしょうか? ちなみに、A列、C列、E列には他の数値があるのでコピーしたくないのです。 どなたかよろしくお願いします。

  • エクセルについての質問。

    エクセルの関数に関して質問があります。 |10001|AAAA|10002|BBBB| |10002|BBBB|10004|DDDD| |10003|CCCC|10004|DDDD| |10004|DDDD|10001|AAAA| |10005|EEEE|10005|EEEE| ちょっと分かりにくいですが 一番上の行ですと、 列A=10001 列B=AAAA 列C=10002 列D=BBBB と考えて下さい。 質問です。 --------------------------- 列Cの数値を列Aから検索して 同じのがあれば列Bの数値を列Dに表示する。 --------------------------- この関数を教えて頂けませんでしょうか? 宜しくお願い致します。

  • エクセルの関数での質問です

    エクセルの関数での質問です sheet1に A B  C  D  E 1 ○ ○ ○ 1 2 ○ ○ ○ 3 ○ ○ ○ 2 4 ○ ○ ○ みたいな状態からsheet2に A B  C  D  E 1 ○ ○ ○ 1 3 ○ ○ ○ 2 のようにE列の数値順に行を並べることはできますか? エクセル初心者なのでわかりやすく教えていただけると助かります。

  • ExcelのVBAでデータをツリー構造にしたい

    Excelのあるシート「シート1」に親子関係が記されたデータがあります。 列の親には親の名前が、子にはカンマ区切りで所属する子の名前が記されています。 <シート1> 親 子 A1 A2,B1,B2,B3 B1 C5 A2 C1,C2,C4 B2  C1 C2 C3 C4 B3 D1,D3 D1 D2 D3 D2 これを下のシート2のようなツリー構造で親子関係を表現したいです。 1、2、3、4はそれぞれ列で、セルの行と列を変更することで、 ツリーの親子構造を表現します。 <シート2> 1 2 3 4 A1   A2     C1     C2       C3     C4   B1     C5   B2   B3     D1     D3       D2 条件は以下のようになります。 a.シート1の記述順は順不同だが、一番上の行は必ず、一番上の親が来る。 b.一番上の行の親以外は、必ず親を持ちます。逆を言えば、「A1」以外には必ず親が存在し、親をたどると必ず「A1」になります。 そんなに難しくないかとは思うんですが、循環関数を作って考えるのが、今の眠い頭でできなくて…。

  • Excelの条件付き書式について

    例えばEXCELで 1行| A列 | B列 | C列 | D列 | 2行|  1 | 2  | 1-2=-1 | NG | 3行|  2 | 1  | 2-1=+1 | OK  |         ・         ・ のようなD列がif関数でプラスになればOKとした表を作って、 更にわかりやすく、D列にOKと表示されたら(或いはC列の値がプラスになれば) A3:D3にセルの色の塗りつぶしできるようにしたいのですが、 方法は有りませんか?

  • エクセル2000で質問です。

    下記のように式を入れたいのです。 先ずC1にはすでに数値が入力されています。 そこからA2を足しB2、B3を引いた数値をC3に出す。 日付順に並んでいるのですがA列には一つの日付に対して 一つしか数値が入りませんがB列には一つの場合も複数行入る場合もあり いくつ入るか分かりません。 いくつ入るか分からないのですがその日のB列に入った数値はすべて 引き算してその横のC列のセルにその答えを反映させたいのです。 この場合C列にどのような式を入れれば良いのでしょう? 下記の表の場合は 5000+300ー500-600=4200 4200+800-400-700-100=3800 というふうになっていくようにしたいのです。             A       B      C 1                         5000 2  10/20     300    500 3   10/20             600   4200 4   10/21     800    400 5   10/21            700 6   10/21            100    3800 7   10/22     500    300    4000 8   10/23     300    900    3400 9   10/24    1000    700 10  10/24            1200   2500