Excel VBA質問箱 IV

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

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


71275 / 76732 ←次へ | 前へ→

【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

0 hits

【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 発言

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