advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 8932 for リスト (0.006 sec.)
[[20111217125635]]
#score: 2746
@digest: b5e288c0b21568471808792ad55caa39
@id: 57030
@mdate: 2011-12-18T04:26:18Z
@size: 3651
@type: text/plain
#keywords: 日利 (17225), vntkey (17063), lngrows (15619), 結vn (15497), vntdata (13712), dicindex (13569), 合ke (12255), strprom (10897), vntresult (10023), rngresult (9447), タ先 (6221), rnglist (5518), 得vn (4676), 得ln (4532), wayout (3886), 照合 (3777), 3002 (3589), ト! (3525), ル位 (2651), 3001 (2311), 頭セ (2198), vbtab (1737), リス (1718), 列デ (1627), 毎日 (1596), チェ (1392), るリ (1306), 連結 (1265), ェッ (1260), 事? (1255), 先頭 (1234), dictionary (1154)
『複数の条件が合うものを抽出したい』(HARU)
いつもお世話になっています。 教えて下さい。 下の様な表を作成しています。 毎日利用するリスト A B C D 10 200 3000 11 201 3001 12 202 3002 チェックリスト A B C D 10 200 3000 AAA 11 201 3001 BBB 12 202 3002 CCC 10 200 4000 空白 チェックリストのDを毎日利用するリストに表示したいのですが、 チェックリストのAもBもCも合うものを表示したいのですが、 どのようにすればいいのでしょうか? 知恵をかしてください! ---- Listの中でKeyの重複、照合のルール等を考えないで、 単純に照合と言うだけならこんな事? Option Explicit Public Sub Sample() Dim i As Long Dim lngRows As Long Dim rngList As Range Dim rngResult As Range Dim vntData As Variant Dim vntResult() As Variant Dim vntKey As Variant Dim dicIndex As Object Dim strProm As String 'Listの先頭セル位置を基準とする(データ先頭のセル位置) Set rngList = Worksheets("チェックリスト").Range("A1") '結果出力の先頭セル位置を基準とする(データ先頭列のセル位置) Set rngResult = Worksheets("毎日利用するリスト").Range("A1") 'Dictionaryオブジェクトを取得 Set dicIndex = CreateObject("Scripting.Dictionary") With rngList '行数の取得 lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row + 1 If lngRows <= 1 And IsEmpty(.Value) Then strProm = "データが有りません" GoTo Wayout End If '列データを配列に取得 vntData = .Resize(lngRows + 1, 4).Value End With 'Dictionaryにチェックリストを登録 With dicIndex For i = 1 To lngRows 'A,B,C列をタブを挟んで連結 vntKey = vntData(i, 1) & vbTab _ & vntData(i, 2) & vbTab & vntData(i, 3) '照合KeyをKeyとしてD列を登録 .Item(vntKey) = vntData(i, 4) Next i End With With rngResult '行数の取得 lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row + 1 If lngRows <= 1 And IsEmpty(.Value) Then strProm = "データが有りません" GoTo Wayout End If '列データを配列に取得 vntData = .Resize(lngRows + 1, 3).Value '結果を格納する配列を確保 ReDim vntResult(1 To lngRows, 1 To 1) End With '毎日利用するリストの先頭〜最終行迄繰り返し照合 With dicIndex For i = 1 To lngRows 'A,B,C列をタブを挟んで連結 vntKey = vntData(i, 1) & vbTab _ & vntData(i, 2) & vbTab & vntData(i, 3) '照合KeyがDictionaryに有ったなら If .Exists(vntKey) Then '結果用配列にD列を代入 vntResult(i, 1) = .Item(vntKey) End If Next i End With '結果を出力 With rngResult.Cells(1, 4).Resize(lngRows) .ClearContents .Value = vntResult End With strProm = "処理が完了しました" Wayout: Set dicIndex = Nothing Set rngList = Nothing Set rngResult = Nothing MsgBox strProm, vbInformation End Sub (Bun) ---- こんな感じでどうでしょう? =INDIRECT("'チェックリスト'!d"&SUMPRODUCT((A2=チェックリスト!A2:A5)*(B2=チェックリスト!B2:B5)*(C2=チェックリスト!C2:C5)*ROW(チェックリスト!A2:A5))) (seiya) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201112/20111217125635.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97056 documents and 608292 words.

訪問者:カウンタValid HTML 4.01 Transitional