• 締切済み

Excelの計算式で、特定の文字列の一つ下のセルを取り出せますか?

imogasiの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

#1で回答を入れたものです。実のところ質問の内容を捉えていませんでした。VBAでないと出来ないのではとのご回答もあり、再度下記を載せてみます。質問の内容を明確にするためにもしたいことは下記(1)と(3)のようなものでしょうか。 (1)まずエクセルのSheet1にテストデータを作ります。セルA1からA16までです。 (商品1) 品番:SND-R-R6 品名:サンドストーン 単価:30円 品番:SND-R-R7 品名:ノート 単価:51円 品番:SND-R-R12 品名:消しゴム 単価:100円 品番:SQT-R-R99 品名:筆箱 単価:200円 品番:AAB-Y-R10 品名:マーカー 単価:130円 Sheet1にボタンを1つ貼りつけておきます。 Sheet1に貼りつけが終わるとボタンをクリックします。 (2)VBEのModule1に Sub test01() d1 = Sheets("sheet1").Range ("a2").CurrentRegion.Rows.Count ' この行は上の行の右端に続けてください d2 = Sheets("sheet2").Range("a2").CurrentRegion.Rows.Count ' この行は上の行の右端に続けてください k = d2 + 1 For i = 1 To d1 a = Worksheets("sheet1").Cells(i, 1)  If Left(a, 3) = "品番:" Then   Sheets("sheet2").Cells(k, 1) = Mid(a, 4, 10)   a = Worksheets("sheet1").Cells(i + 1, 1)   Sheets("sheet2").Cells(k, 2) = Mid(a, 4, 10)   a = Worksheets("sheet1").Cells(i + 2, 1)   Sheets("sheet2").Cells(k, 3) = Mid(a, 4, 10)   k = k + 1  End If Next i End Sub を作ります。 またSheet1のイベントプロシージャーとして Private Sub CommandButton1_Click() test01 End Subを作る。 (3)前記ボタンをクリックすると、Sheet2のA2からC6に SND-R-R6 サンドストーン 30円 SND-R-R7 ノート 51円 SND-R-R12 消しゴム 100円 SQT-R-R99 筆箱 200円 AAB-Y-R10 マーカー 130円 が出来ます。 (4)仮定があります。貼りつける前に毎回Sheet1はクリアーしてください。VBAでクリアーも可能。品番、品名、単価はこの順序でならんでA2セル以下に続いてSheet1に入ってくるものと仮定しています。品番は10桁以下と仮定しています。品番:、品名:、単価:はこのままの言葉で入ってくるものとします。これらの仮定は外してもプログラムを複雑にすれば対処可能と思う。

rururu-
質問者

お礼

こんにちは、るるるーです。 丁寧にご回答頂いて、びっくりしました。お忙しい中本当にありがとうございました。 でもでも、 (1)まずエクセルのSheet1にテストデータを作ります。セルA1からA16までです。 はできましたが、 Sheet1にボタンを1つ貼りつけておきます。 Sheet1に貼りつけが終わるとボタンをクリックします。 ここからが分かりません。オートシェイプで形を作るのがぜいぜい・・・ VBEとマクロがなんであるか、Module、イベントプロシジャーなどの意味がわからないのです。 imogasiさんと私の知識に雲泥の差あり・・・ いろいろ出来て大変便利そうなのですが、難しいですね。計算式でできないか模索中です・・・ 大変詳しく時間をかけて説明して説明してくださっているだけに、申し訳ない気持ちでいっぱいです。 もうちょっとがんばってみますね。 すみません&ありがとうございました。

関連するQ&A

  • エクセルでセルの結合について

    Excel2000を使用してます。 A列B列C列に入力した文字をD列に全て表示させたく、 下記のようにしました。   A列  B列  C列   D列     あ   い    う    あいう(計算式を=A1&B1&C1)   か   き    く    かきく(計算式を=A2&B2&C2)   上記のように、計算式を入れて希望通りの文字表示は 出来るんですが、それをメモ帳などにペーストすると "あいう" "かきく" のように"が入ってしまいます。 置換によって取ろうとしますが、エクセル上では該当がありませんとなります。 メモ帳に一旦ペーストして置換すると、”は取れますが、 横列も長い為エクセルにペーストし直すと、一つのセルに入らず、 複数の行に分かれてしまいます。 ””が入らずに、一つのセルに結合の値を出すには どうしたらよいのでしょうか?

  • エクセルの文字列を数式に変換する方法

    エクセルに「=A1+A2」という文字列を値コピーでペーストしたのですが、この文字列を簡単に数式に変換する方法はないでしょうか?                              文字列のはいったセルをダブルクリックすれば、文字列が数式にかわって、A1+A2を計算しれくれるのですが、ひとつひとつのセルをダブルクリックするのが大変で・・・。 よろしくお願いいたします。

  • エクセルで文字列の計算をしたいのですが。

    エクセルで文字列の計算をしたいのですが。 セルの表示は文字列ですが、実際のデータは数字(だけ)が入っています。 これを計算する事は可能でしょうか?。 例えば A1セル:00001 と入っていて B1セルには、A1セル+1=00002 とさせたいのです。 よろしくお願いいたします。

  • 特定の列が再計算された時に実行するマクロ

    excelで、特定の列に計算式(SUM)が入っています。 その列が再計算され、結果が1より大きくなったら、そのセルと同じ行の、他の列の値を変更するマクロを作りたいと思っております。 Worksheet_Calculateだと、再計算されたセルを特定できないと伺いました。 なので、再計算されたセルと同じ行で、他の列の値を変更することができません。 Worksheet_Changeだと計算式による変化は扱えないようなので・・・。 このような場合、どうすればいいか教えていただけないでしょうか。 よろしくお願いいたします。

  • Excelで、ある行に注目して、セルの列番号をセルに簡単に入力するには。

    どうしたら良いでしょうか。 ある行に注目して、そこの横ならびのセルに、ずらっと、1,2,3,4,5...と入力していきたいです。手で入力するには、数が多すぎますので、なにか良い方法がありませんでしょうか。 例えば、次のようなイメージを想像しています。各セルに、=%r と打ち込むと、セルの値は希望どおり、列番号に対応した、1,2,3..., 70,71,72となる。とか。ユーザは、=%rをコピーペーストするだけ。こんな方法ないでしょうか。 Excel2002, Windows2000, ThinkPadです。 皆様よろしくお願い致します。先の質問から派生した別の疑問です。

  • EXCELで計算式を文字列として抜き出す?

    excelにて、計算式を文字列として他のセルに表す方法はありますか? 数箇所だったら数式を直接コピーすればできるのですが、行が多いので関数でひとつ作ってそれを下の行へコピーすれば楽にできるのかなと思いまして・・ 例えば、  C1セルに「=A1+B1」という計算式が入っているとして、  D1セルに「=A1+B1」と式自体を表示させたい。 という場合に。D1に関数をいれればいいとかありますか?

  • エクセルのセルに2列で文字を入れる

    エクセルの行の高さを変えて、1つのセルに2列で文字を入れたいのですが、どのようにしたらいいのでしょうか。 例: 家の購入     ↓    家の    購入 よろしくお願いします。

  • EXCELで特定のセルを参照するには

    EXCELで特定のセルを参照するにはどうすればいいでしょか? たとえば、sheet1の何行目の何列目のセルの値を参照、とか感じでやりたいんですが・・・。 できれば、「ある値 引く ある値」目の列、「ある値 引く ある値」目の行とやりたいです。

  • エクセルの計算式(文字列の参照)のことで困っています。

    エクセルの計算式(文字列の参照)のことで困っています。 基礎的なことと思えるのですが、 セルA1:文字・・・値:TEST セルB1:=A1 最初は、B1の表示が TEST となるのですが、 B1をダブルクリックすると =A1 のように表示され、 文字列として扱われてしまうようです。 常にA1の内容を表示するようにするにはどうしたらよいでしょうか。

  • 特定の文字列を含む数値の分散計算

    Excelで特定の文字列を含む数値の分散を計算したいのです。 I2~I10にA・Bどちらかの文字が書いてあり、A2:H10には数値が書いてあります。 A~H列の数値について、Aを含むセルの分散とBを含むセルの分散を計算しなくてはなりません。 例えばA列の場合、A2~A10の中でI行にAが書いてあるもののみの分散・Bが書いてあるもののみの分散を計算するといった具合です。