advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 8928 for リスト (0.006 sec.)
[[20220905161205]]
#score: 2746
@digest: 08fcd32344b0b1856ebc591c955a8613
@id: 92217
@mdate: 2022-09-07T06:03:11Z
@size: 6847
@type: text/plain
#keywords: 川kk (36340), 藤原 (29199), 本aa (28223), 長谷 (24050), 中ab (23966), 谷川 (23272), 藤ac (22494), 田川 (16263), 藤aa (15535), datalist (15468), 原as (15241), 川ns (15241), 致数 (14551), ト"} (13965), ト"] (13533), 小田 (12702), 田bb (12619), 橋本 (10304), タム (7917), 石田 (7812), ム", (7625), 元リ (6176), カス (4810), リス (4665), ト", (4578), ス,{ (3803), currentworkbook (3773), 型= (3702), table (3608), 佐藤 (3332), transformcolumntypes (3298), 物名 (3103)
『検索条件があいまいなリストの抽出』(天津風)
Aのリストと、Bのリストがあり、 Aのリストには名前が記載されています。 Bのリストには、検索したい人物名が部分的に記載されているリストがあります(正確なフルネームの抽出は不可能。苗字しかわかりません) Aのリストの中から、Bのリストに登録されていない人物名を抽出したいのですが、どのようにしたら抽出できますでしょうか。 同じ苗字は検索対象外とします (例のリストでいうと、Bリストに「佐藤」がありますが、Aリストの「佐藤AA」と「佐藤AC」は登録されているとみなしたいです。) (Aのリストに「長谷川KK」がありますが、Bのリストに「長谷川」がありません。このようなデータだけ抽出したいです) Aのリスト 佐藤AA 佐藤AC 山田BBB 佐々木CC 橋本AA 石田AD 長谷川KK 田中AB 小田川NS 藤原AS 藤原AA (以下400ぐらいデータが入っています) Bのリスト 佐藤 山田 佐々木 石田 藤原 鈴木 小田川 藤原 (以下略、60件ぐらいデータが入っています。) < 使用 Excel:Office365、使用 OS:Windows10 > ---- BのリストがAのリストにあるかないかをみるだけでは? (文字認識) 2022/09/05(月) 17:13 ---- それがなかなかうまくいかず、関数あまり触ったことがなくて困っておりまして。 無知な自分にご教示いただけませんでしょうか (天津風) 2022/09/05(月) 17:35 ---- 以下でどうでしょうか? A列に元リスト、D列に検索リスト(100行と仮定)があるものとしています。 B列に「含む/含まない」の作業列、結果はF列に表示しています。 __A_______ __B__________ __C __D_______ __E __F___________ 1 元リスト 含む/含まない 検索リスト 含まないリスト 2 佐藤AA TRUE 佐藤 橋本AA 3 佐藤AC TRUE 山田 長谷川KK 4 山田BBB TRUE 佐々木 田中AB 5 佐々木CC TRUE 石田 6 橋本AA FALSE 藤原 7 石田AD TRUE 鈴木 8 長谷川KK FALSE 小田川 9 田中AB FALSE 藤原 10 小田川NS TRUE 11 藤原AS TRUE 12 藤原AA TRUE [B2] =ISNUMBER(LOOKUP(1,0/(FIND(FILTER($D$2:$D$100,$D$2:$D$100<>""),A2)))) ↓にコピ- [F2] =FILTER(A:A,(B:B=FALSE)*(B:B<>"")) (まる) 2022/09/05(月) 18:46 ---- Power Queryでもよいですか。 この程度の数なら全組み合わせを評価しても問題ないでしょう。 クエリ:Bのリスト let ソース = Excel.CurrentWorkbook(){[Name="Bのリスト"]}[Content], 変更された型 = Table.TransformColumnTypes(ソース,{{"Bのリスト", type text}}) in 変更された型 クエリ:AからB以外を抽出 let ソース = Excel.CurrentWorkbook(){[Name="Aのリスト"]}[Content], 変更された型 = Table.TransformColumnTypes(ソース,{{"Aのリスト", type text}}), 追加されたカスタム = Table.AddColumn(変更された型, "カスタム", each Bのリスト), #"展開された カスタム" = Table.ExpandTableColumn(追加されたカスタム, "カスタム", {"Bのリスト"}, {"Bのリスト"}), 追加された条件列 = Table.AddColumn(#"展開された カスタム", "カスタム", each if Text.StartsWith([Aのリスト], [Bのリスト]) then 1 else null), グループ化された行 = Table.Group(追加された条件列, {"Aのリスト"}, {{"一致数", each List.Sum([カスタム]), type nullable number}}), フィルターされた行 = Table.SelectRows(グループ化された行, each ([一致数] = null)), 削除された列 = Table.RemoveColumns(フィルターされた行,{"一致数"}), #"名前が変更された列 " = Table.RenameColumns(削除された列,{{"Aのリスト", "AからB以外を抽出"}}) in #"名前が変更された列 " (マナ) 2022/09/06(火) 13:13 ---- 見出し適当に判断するとして Microsoft365なら =FILTER(テーブル1[列1],MAP(テーブル1[列1],LAMBDA(_a,AND(COUNTIF(_a,テーブル2[列1]&"*")=0)))) (d-q-t-p) 2022/09/06(火) 14:13 ---- Option Explicit Sub oNeInstance01() Dim i&, j&, k&, v(), w(), x(), z(), ex, n&, eTx$, res As Boolean Set ex = CreateObject("VBScript.RegExp") ex.Global = True With Worksheets("Sheet1") v = .Cells(1, 1).CurrentRegion.Value w = .Cells(1, 4).CurrentRegion.Value ReDim x(1 To UBound(v, 1), 1 To 1) For i = 1 To UBound(v) For j = 1 To UBound(w) eTx = ".*" & w(j, 1) & ".*" ex.Pattern = eTx res = ex.test(v(i, 1)) If res Then For k = LBound(x) To UBound(x) If x(i, 1) = Empty Then x(i, 1) = 1 End If Next End If res = False Next Next ReDim z(0) For i = 1 To UBound(x, 1) If x(i, 1) <> 1 Then z(UBound(z)) = v(i, 1) ReDim Preserve z(UBound(z) + 1) End If Next MsgBox Join(z, Chr(13)) End With Erase v, w, x, z (隠居Z) 2022/09/06(火) 21:58 ---- トピ主さんからの返信がありませんが きっと既に…関数でされたい事は、実現できたのでしょう。^^ もし関数で出来ていないのなら、VBAの初期設定だけなら 誰でも簡単に…1時間もあれば出来ますので、その時はご連絡を お待ち致します。 では、場所をお借りして…VBAで久しぶりの「 Like演算子とワイルドカード 」 のお勉強です。( お忙しい方は、スルーしてください。) ◇結果 ( 抽出したいシート ) |[A] [1]|橋本AA [2]|長谷川KK [3]|田中AB Sub Search_Sample() Dim ws(1 To 3) As Worksheet Dim MyRNG As Range Dim DataList As String Dim i As Long, q As Long, cnt As Long, LastRow As Long Set ws(1) = Sheets(1) '' Aのリストシート" Set ws(2) = Sheets(2) '' Bのリストシート" Set ws(3) = Sheets(3) '' 抽出シート" LastRow = ws(1).Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To ws(2).Cells(Rows.Count, 1).End(xlUp).Row DataList = ws(2).Cells(i, 1).Value For q = 1 To ws(1).Range("A1").End(xlDown).Row If ws(1).Cells(q, 1).Value Like "*" & DataList & "*" Then ws(1).Cells(q, 1).Font.Color = RGB(255, 0, 0) End If Next q Next i For Each MyRNG In ws(1).Range(ws(1).Cells(1, 1), ws(1).Cells(LastRow, 1)) If Not MyRNG.Font.Color = RGB(255, 0, 0) Then cnt = cnt + 1 ws(3).Cells(cnt, 1).Value = MyRNG.Value End If MyRNG.Font.Color = RGB(0, 0, 0) Next MyRNG End Sub ※閲覧されてしまった方で、マクロが理解できる方は それはちょっと反則とか...言わないでくださいませ。(笑) (あみな) 2022/09/07(水) 13:31 ---- リストA:森田GG リストB:森 この場合、森田GGさんは対象外なんですか? そんなことはないと思うんですけど・・・ 以上、確認だけ (笑) 2022/09/07(水) 15:03 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202209/20220905161205.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97012 documents and 608132 words.

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