- ベストアンサー
Excelで指定文字間の繰り返し抽出の方法
eden3616の回答
- eden3616
- ベストアンサー率65% (267/405)
>追加なのですが、シートBの内容に訂正と検索の方法が変わりまして、 バージョン書かれていないので手軽な方法で実装します。 エクセル2007以上でのみ動作致します。 最下のVBAコードと差し換えてください。 またセルC2に入力する数式を以下のようにして、下方向へオートフィルしてください。 =集計(シートB!A:A,A2,シートB!B:B,B2,",") 関数の引数は以下のように変更となります =集計(売上番号範囲,対象売上番号,商品名範囲,対象商品名,区切り文字) ・売上番号範囲:シートB!A:A ・対象売上番号:A2 ・商品名範囲:シートB!B:B ・対象商品名:B2 ・区切り文字:"," ・・・""で括って指定 また現状は0005の「xyz」について、大文字小文字の違いでも不一致となります。 ■VBAコード Function 集計(myRng1 As Range, myTar1 As Range, myRng2 As Range, myTar2 As Range, word As String) As String Dim mySrcs As Variant, mySrc As Variant If Len(myTar2) = 0 Then 集計 = "" Exit Function End If On Error GoTo era mySrcs = Split(myTar2.Value, word) For Each mySrc In mySrcs If WorksheetFunction.CountIfs(myRng1, myTar1, myRng2, mySrc) = 0 Then GoTo era Next 集計 = "○" Exit Function era: 集計 = "×" End Function
関連するQ&A
- EXCELから文字だけ抽出する方法を教えてください
タイトルの通りですがよろしくお願いします。 どのような状態かといいますと セルA1、セルB1、セルA2、セルB2に文字が入力してあるとします。 セルC5に次のような関数を入力して(A1,A2,B1,B2)に入力した文字を結合します セルC5:=A1&A2&B1&B2 このセルC5に表示されているのは、関数によって合わせた文字が表示されていますが、この表示されている文字をコピーしようとするとセルを右クリックしてワードに貼り付けてセルの枠を消してから文字を取り出すことになります。 当たり前ですが、セルC5をダブルクリックすると関数が現れてしまうので、文字をコピーすることはできません。 上のように長く書きましたが VBSでもEXCELの関数でもいいので、 セルC5に表示している文字をクリップボードニコピーする方法を教えてください。 たとえばVBSならコマンドボタンを作ってコマンドボタンを押すと文字だけがコピーするプログラムとか・・・ EXCELの関数ではできるのでしょうか? いずれにしても大変不便なのでどなたか文字のコピーの方法を知っておられる方はぜひともよろしくお願いします
- ベストアンサー
- オフィス系ソフト
- エクセル 別シートから一覧を抽出したい
部品一覧表を作成しているのですが、2シートあり 1入力シート・2部品コードシートとあります。 部品コードシートにはB列に部品番号・C列部品名・D列部品番号・E列部品名と2行ずつ使い番号・品名がB~Wまで47行分入力されています。 B1:C47、D1:E47…と2列47行にはそれぞれ【A】、【B】、…とセルの名前の定義をつけました。現在【H】までありますが、今後増える可能性があります。 入力シートに、セルの名前を指定したときに部品コードのシートから 一覧を抽出したいのですが、どの関数を使えばよいのかわかりません。 入力シート |部品コードシート G H | A Bコード C部品名 Dコード E部品名 4式入力用にあけています。 |1 1800 ユニットA 1501 電源A 5コード 部品名 |2 1801 ユニットB 1502 電源B 6 |3 G4に関数を入れてG6~G52まで部品コードのシートA1~A47を一気に表示 させたいのです。部品コードシートの行数が変わることはありません。 マクロを使わないと、関数では難しいでしょうか?
- 締切済み
- オフィス系ソフト
- エクセルで、条件にあう複数の行を別のシートに抽出する
《どなたか、お教え下さい》 エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。 「sheet1」の下記の基本データを「sheet2」に「得意先」ごと「日付」の早い順にまとめたいのでが。関数を使ってできないものか、どなたかお教え下さい。「マクロ」や「Access」は使用したことがないので、関数を使ってやりたいと思いますが、できるものでしょうか。よろしくお願いします。 sheet1 番号 得意先 日付 商品名 商品詳細 金額 備考 1 A 2 B 2 B 4 D 5 E 6 F 2 B 3 C 5 E A B 番号 得意先 1 A 2 B 得意先名は、番号を入力することで表示されるように 3 C 関数「VLOOKUP」を使って表示させるようにしていま 4 D す。 5 E 6 F
- ベストアンサー
- オフィス系ソフト
- エクセルの順位抽出について
Sheet1のA列にコード、B列に商品名、C列に分類 D列に売上数、 E列に売上金額を入力した一覧表があります。 A_1:1000 B_1:牛肉 C_1:食品 D_1:20 E_1:3000 A_2:1050 B_2:お茶 C_2:飲料 D_2:18 E_2:3010 A_3:2000 B_3:鉛筆 C_3:文具 D_3:12 E_3: 900 A_4:2050 B_4:お米 C_4:食品 D_4:12 E_4:9010 A_5:3000 B_5:牛乳 C_5:飲料 D_5:25 E_5:2000 A_6:3050 B_6:定規 C_6:文具 D_6:28 E_6: 700 中略 A_300:10000 B_300:肉まん C_300:食品 D_300:38 E_300:9000 1.食品対象で売上金額の上位20のコードをSheet2のA列に表示 2.全商品対象で売上金額の上位20のコードをSheet3のA列に表示 上記の様な抽出をしたいのですがどの様な関数を使用すれば良いでしょうか? (オートフィルタを使用してのコピペという手作業をなくすためにSheet1の内容が更新されれば自動でSheet2,3の内容も更新されている のが希望です) よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- エクセル 文字が表示されたセルを抽出したい
エクセルの関数を教えて下さい。 A B C D 1 りんご りんご 2 プリン プリン 3 紅茶 紅茶 4 バナナ バナナ 5 6 緑茶 緑茶 上記のような表があります。(A~は列、1~は行番号です) A1~C6までは、IF関数で、条件にあった場合に“りんご”などを表示、そうでない場合には空白と なるような式が入っています。 そして、D列のように、それぞれの行に表示されている文字を抽出、何も表示されていない場合は空白としたいのです。 D列にはどういった式を入れればよいかを教えて下さい。 ※各行に表示されるのは1つのセルのみで、例えばA1のセルとC1のセルに文字が表示される ことはありません。A1に文字が表示されている場合は、必ずB1・C1のセルは空白です。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルのVLOOKUPに関して
お世話になっております。 VLOOKUP関数になるのか他の関数になるのか分からないのですが ご教授よろしくお願い致します。 A1セル A2セル A3セル 店番号 商品名 担当 1 ア 山口 2 イ 大山 3 ウ 斎藤 1 エ 中村 1 オ 山口 上記のような情報がシート1にあり、 シート2のA1セルに店番号を入力した時に シート2のB列に同じ店番号を持つ商品名をB1、B2、B3...セルへとリスト化し、 C列に担当をC1、C2、C3...セルへとリスト化したいのですが、 どのような関数を使用すれば可能となりますでしょうか。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- VLOOKUP関数の範囲をセルで指定したいと思っています。
VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。
- ベストアンサー
- オフィス系ソフト
- EXCELで一致する文字列を抽出する方法
EXCELに関する質問です。 ファイル1に売上デ-タがあります。 A B C D 1 商品名 品番 単価 個数 2 あ A1 100 3 3 い A2 110 10 4 う A3 120 5 5 は A4 130 3 6 ひ A5 140 7 7 ふ A6 150 11 8 へ A7 160 6 9 ほ A8 170 3 ファイル2に特定の商品名のリストがあります。 A B C 1 商品名 2 い 3 ろ 4 は 5 に 6 ほ 7 へ 8 と 9 ち 10 り 11 ぬ ファイル1のSHEET2に A B C D 1 商品名 品番 単価 個数 2 い A2 110 10 3 は A4 130 3 4 へ A7 160 6 5 ほ A8 170 3 の様に抽出する方法ですが、商品名が単純な文字列のときは フィルタ-の詳細設定で出来ますが、 商品名が [8/1発売] 20%OFF い A2 の様なキャッチコピ-付の文字列の場合、抽出することが出来ません。 (ファイル1・2共にキャッチコピ-付の商品名です。) この場合でも抽出できる方法をご教授いただけないでしょうか? 宜しくお願い致します。
- 締切済み
- オフィス系ソフト
- 空白以外のセルを複数抽出して表示させる方法
[シート1] A B C D E F 1 _ a b c d e 2 ア あ い 3 イ う 4 ウ 5 エ え 6 オ お か ↓ [シート2] A B C D E F 1 ア a あ 2 _ c い 3 4 5 6 シート1で入力したものを、シート2で上記のように抽出したいのですが、どのようにすればいいのでしょうか? シート2ではセルA1をカウンターボックスにして、値が変わるとB、Cの結果も変わるようにしたいです。 関数やオートフィルタは使用せず関数のみで出来る方法はありますでしょうか。 宜しくお願い致します。
- 締切済み
- オフィス系ソフト
- エクセル関数 範囲指定で文字を連結する方法
セルA1に1、B1に2、C1に3が入力されている時に、 D1に関数「=A1&B1&C1」と入力すると123と表示されますよね。 これを範囲指定で文字を連結するには、どのような関数になるのでしょうか。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
補足
ありがとうございます。 >また現状は0005の「xyz」について、大文字小文字の違いでも不一致となります。 とのことですが、大文字小文字の違いで不一致にはなりませんでした。 excelのバージョンは、2010です。