Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12398 / 13644 ツリー ←次へ | 前へ→

【9930】セルの内容に従って抽出を行うマクロ みけ 03/12/24(水) 10:35 質問
【9932】Re:セルの内容に従って抽出を行うマクロ INA 03/12/24(水) 11:07 発言
【9934】Re:セルの内容に従って抽出を行うマクロ ぴかる 03/12/24(水) 11:51 発言
【9935】Re:セルの内容に従って抽出を行うマクロ びょびょ〜ん 03/12/24(水) 12:09 発言
【9936】Re:セルの内容に従って抽出を行うマクロ みけ 03/12/24(水) 12:47 質問
【9937】Re:セルの内容に従って抽出を行うマクロ INA 03/12/24(水) 12:55 回答
【9952】Re:セルの内容に従って抽出を行うマクロ ichinose 03/12/24(水) 19:25 発言
【10716】Re:セルの内容に従って抽出を行うマクロ Jaka 04/2/10(火) 9:02 回答
【9933】Re:セルの内容に従って抽出を行うマクロ Jaka 03/12/24(水) 11:47 発言

【9930】セルの内容に従って抽出を行うマクロ
質問  みけ  - 03/12/24(水) 10:35 -

引用なし
パスワード
   こんにちは、又教えてください。
品名|コード|支店名|
−−−−−−−−−−−−
  A|100|B店  |
品名、コード、支店名を各セルに入力して、複数の結果を抽出する良い式はないでしょうか。
操作をマクロで記録させるのでなく数式で行いたいのですが良い方法はないでしょうか。
変なことを聞いてすみません。
よろしくお願いします

【9932】Re:セルの内容に従って抽出を行うマクロ
発言  INA  - 03/12/24(水) 11:07 -

引用なし
パスワード
   >操作をマクロで記録させるのでなく数式で行いたいのですが良い方法はないでしょうか。

ここはマクロ(=VBA)の掲示板ですよ?

【9933】Re:セルの内容に従って抽出を行うマクロ
発言  Jaka  - 03/12/24(水) 11:47 -

引用なし
パスワード
   ▼みけ さん:
>こんにちは、又教えてください。
>品名|コード|支店名|
>−−−−−−−−−−−−
>  A|100|B店  |
>品名、コード、支店名を各セルに入力して、複数の結果を抽出する良い式はないでしょうか。
>操作をマクロで記録させるのでなく数式で行いたいのですが良い方法はないでしょうか。
>変なことを聞いてすみません。
>よろしくお願いします

もっと具体的に書かないと何が何だか解らないです。
複数の結果って、どんな???
何も知らない第3者にも伝わるようにお願いします。

【9934】Re:セルの内容に従って抽出を行うマクロ
発言  ぴかる  - 03/12/24(水) 11:51 -

引用なし
パスワード
   >ここはマクロ(=VBA)の掲示板ですよ?
まあ、いいじゃないですか。谷さんも容認してくれていると思います。
そうでないと私も困ります。過去にこのような質問をよくしてましたから・・・。
基本的にエクセル関係の質問は、ここと私は決めています。

ところで本題、残念ながら分かりません。

【9935】Re:セルの内容に従って抽出を行うマクロ
発言  びょびょ〜ん  - 03/12/24(水) 12:09 -

引用なし
パスワード
   ▼ぴかる さん:
>>ここはマクロ(=VBA)の掲示板ですよ?
>まあ、いいじゃないですか。谷さんも容認してくれていると思います。
>そうでないと私も困ります。過去にこのような質問をよくしてましたから・・・。
>基本的にエクセル関係の質問は、ここと私は決めています。
>
>ところで本題、残念ながら分かりません。

彼のいい太鼓ハ、いんでっくすまっち関数だとおもうのは
私だけでしょうか〜。

【9936】Re:セルの内容に従って抽出を行うマクロ
質問  みけ  - 03/12/24(水) 12:47 -

引用なし
パスワード
   場違いな場所に質問を出してすみません。

品名|コード|支店名|商品名 
−−−−−−−−−−−−
  A|100|B店  |

の様なもとデータがありまして、品名、コード、支店名を各セルに入力して抽出させたいのです。
 この抽出をエクセルシート関数(正式な名前が判らなくてごめんなさい。)で行いたいのです。
 それと、抽出される結果は、1つでなく、複数が想定されるのでそれに対応できるようにしたいのですが・・・。(商品1、商品2、商品3・・・というように)
結果が一つなら可能だと思うのですが、複数となると全然見当がつかないのでよろしくお願いします。

【9937】Re:セルの内容に従って抽出を行うマクロ
回答  INA  - 03/12/24(水) 12:55 -

引用なし
パスワード
   残念ながら私も分からないです・・・。

VBAはそこそこ分かるのですが、
一般機能や数式は、ほとんど使えないです・・・

【9952】Re:セルの内容に従って抽出を行うマクロ
発言  ichinose  - 03/12/24(水) 19:25 -

引用なし
パスワード
   ▼みけ さん:
こんばんは。
ユーザー定義関数ではいけませんか?
例えば、
セルA1から、以下のようなデータが入力されていたとしましょう。
A     B   C    D
品名    コード    支店名    商品名 
C    100   B店   商品1
A    100   B店   商品2
A    100   B店   商品3
A    100   B店   商品4
A    100   B店   商品5
A    100   B店   商品6
A    100   B店   商品7
A    100   B店   商品8
A    100   B店   商品9
A    100   B店   商品10
B    100   B店   商品11
B    100   B店   商品12
A    100   B店   商品13
A    100   B店   商品14
A    100   B店   商品15
A    100   B店   商品16
A    100   B店   商品17

同じシートのF1、G1、H1にそれぞれ「A」、「100」、「B店」
入力し、
セルI1には、
「=myfind($A$2:$D$18,4,F1,G1,H1)」指定します。
コードは、一例ですが、標準モジュールに
'====================================================
Function myfind(検索範囲 As Range, 結果列 As Long, ParamArray mycond())
  Dim ans()
  Dim t_or_f As Boolean
  Application.Volatile
  With 検索範囲
  kdx = 1
    For idx = 1 To .Rows.Count
     t_or_f = True
     For jdx = LBound(mycond()) To UBound(mycond())
       If .Cells(idx, jdx + 1).Value <> mycond(jdx) Then
        t_or_f = False
        Exit For
        End If
       Next jdx
     If t_or_f = True Then
       ReDim Preserve ans(1 To kdx)
       ans(kdx) = .Cells(idx, 結果列).Value
       kdx = kdx + 1
       End If
     Next idx
    myfind = ""
    If Not IsEmpty(ans()) Then
     myfind = Join(ans(), ",")
     End If
    End With
End Function

【10716】Re:セルの内容に従って抽出を行うマクロ
回答  Jaka  - 04/2/10(火) 9:02 -

引用なし
パスワード
   もう見てくれないと思いますが、無い知恵絞ってみました。
って、雑誌に書いてあった手法なんですけど...。
データやレイアウトなどが、ほとんど記載されていませんので、適当に作りました。
ほとんどの質問者に言えるけど、データやレイアウトはきちんと記載してほしいです。
データが記載されていなかったり、1〜3行程度しか記載されていないと、回答者にレイアウトも含め自分で作ってくれと言っているような物ですから...。
自分でデータを考えるのは、面倒くさくて私は嫌だなぁ!
2回目。

で、レイアウトがこんな感じになっているとして。

   A    B    C    D    E   F   G   H   I   J
1 品名  コード  支店名  商品名            品名  コード 支店名
2  A   100   B店   あんこ           B   101  B店
3  B   100   B店   あんこ           あんこ,ミカン,大福
4  C   100   B店   あんこ
5  A   100   B店   イチゴ
6  B   100   B店   ミカン
7  C   100   B店   リンゴ
8  A   100   B店   大福
9  B   100   B店   大福
10 C   100   B店   大福

作業列にE列とF列を使います。

E2
=IF(AND(A2=$H$2,B2=$I$2,C2=$J$2),OFFSET(A2,,3,,),"")

F2
=E2&" "

F3
=F2&E3&" "

を入れたら、
E2を選択して、セルの右下角にポインタを当て、ポインタが+になった所でWクリック。
次、
F3を選択して、同じようにWクリック。

H3
=SUBSTITUTE(TRIM(F10)," ",",")

H2〜J2に品名等を入れれば、H3に結果が出ます。
作業列がじゃまだったら、非表示にでもしてください。

12398 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free