• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロで全シ-ト複数条件検索)

エクセルのマクロで全シート複数条件検索

Noubleの回答

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.5

済みません、ちょっと汚します お許しください。 此ってどうなのでしょう? (まあ方向性だけでも如何でしょうか?) ユーザー定義関数 Function 検索(ByVal キー As String, ByValレンギ As Range) As Range Dim レンゲ As Range, レンゲ統合 As Range, ヒット数 As Long, センテンス As String  ヒット数 = 0  Set レンゲ = レンギ.Find _    (What:=キー, LookIn:=xlValues, LookAt:=xlPart _   , SearchOrder:=xlByRows, SearchDirection:=xlNext _   , MatchCase:=False, MatchByte:=False)  Do While レンゲ(ヒット数) Is Nothing   ヒット数 = ヒット数 + 1   Set レンゲ統合 = Union(レンゲ統合, レンゲ)   Set レンゲ = レンギ.FindNext(レンゲ)  Loop  レンゲ.Value = ヒット数  Set レンゲ統合 = Union(レンゲ統合, レンゲ)  Set 検索 = レンゲ統合 End Function シート3のC1に =INDEX(OFFSET(検索($B2,Sheet1:Sheet2!$B:$B),0,0,1,2),INT(COLUMN(A1)/2)+1,MOD(COLUMN(A1),2)+1) 必要なだけ横にフィル フィルで選択された範囲を 必要なだけ縦にフィル してください ユーザー定義関数「検索」は 戻り値の最終項に ヒット件数を入れたつもりです。 が、今回は使っていません 表示件数を超えた表示箇所 此への対応の処理に 使えるかも 知れません まあそもそも 串刺し指定しているから 駄目かも知れません… が、ね もっとも Evaluateを使えば 恐らくLoop不要で もっと簡素化できる の、ですが… ね スペシャルサンクス OfficeTanaka http://officetanaka.net/excel/vba/tips/index.htm

loockatme
質問者

お礼

回答が遅れ申し訳ありません。 今回の質問で、一つの目的にも色々な 手法で実現できるということを知ることができました。 ありがとうございました。

関連するQ&A

  • エクセルマクロ 表のタイトルを削除するには?

      A    B       C       D 1  氏名   スコア     氏名    スコア 2  山田さん  100    三谷さん   95 3 加藤さん   50     後藤さん  100   4 佐々木さん  25     鈴木さん   49  このようなデータがあり、これを   A    B       C       D 1  氏名   スコア     氏名    スコア 2  山田さん  100    三谷さん   95 3 加藤さん   50     後藤さん  100   4 佐々木さん  25     鈴木さん   49                    山田さん  100                        加藤さん   50                         佐々木さん  25 のように、隣の表のしたに付け足したいです。その時、「氏名、スコア」のタイトルの行を削除したいです。 どのような手順が一番シンプルなマクロとして記述できるでしょうか。 なお、下に付け足した元の表はそのまま残しておきたいです。 よろしくお願いいたします。  

  • エクセルの同じ名前をカウントする方法

    エクセルの同じ名前をカウントする方法 初歩的な質問ですみません。 山田太郎 田中一郎 鈴木三郎 高橋次郎 鈴木三郎 高橋次郎 鈴木三郎 A1のセルにこういった状態で名前が入力されていた場合に 山田太郎 1 田中一郎 1 鈴木三郎 3 高橋次郎 2 となるように同じ名前がいくつあるかをカウントさせ上記のように表示させたいのですが、 どうしたらいいのでしょうか? (同じシートでも、別のシートでもどちらでも構いません) 至急お答えいただけるとありがたいです。 よろしくお願いします。 

  • エクセル・マクロで書式変更したい!

    エクセルのシートに以下のようなデータがあります。 VBAで、B列が「男」ならば、A列セルの山田・佐藤・加藤を C列が「書」ならば、A列セルの佐藤・吉田を 各々網掛け表示にする方法を教えてください。   A   B   C  D  E  F 1 山田 男 音 ・ ・ ・ 2 鈴木 女 美 ・ ・ ・ 3 佐藤 男 書 ・ ・ ・ 4 吉田 女 書 ・ ・ ・ 5 加藤 男 美 ・ ・ ・ 宜しくお願い申し上げます。≦(._.)≧

  • エクセル:このような「予定表」を作りたいのです。

    よろしくお願いします。 ◆シート1に5分単位で次のような入力を行います。 職員氏名 顧客氏名 訪問予定時間 終了時間 備考 ------------------------ 山田太郎 鈴木一郎  7:05     8:35   ×× 海川三郎 ○○    ○:○○    ○:○○ 山田太郎 佐藤次郎  9:00    10:15   ▲▲ 川波五郎 ○○    ○:○○    ○:○○  山田太郎 田中六郎 13:00    14:25   □□  ◆シート2に関数でつぎのような表示を出したいのです       7:00 7:30 8:00 8:30 9:00 9:30 ・・・ ------------------------ 山田太郎  7:05~8:35    9:00~10:15・・・         鈴木一郎    佐藤次郎 ・・・         ××       ▲▲  ・・・ ------------------------ ◆シート2の時間もセルの列を5分単位で区切ってセル幅を短くし、該当時間に条件付書式で色をつけるイメージです。 ◆職員数数十名、顧客数数百名で曜日別に作成するため、重くなるのは仕方ありませんが、シート2の作成するための「ヒント」がほしいのです。関数を主体に作成いたしたく、四苦八苦したのですが、どうもうまくできません。ご指導をよろしくお願いいたします。

  • エクセルでの顧客数のカウント

    エクセルで下記のような表を作っています。 A   B       C 日付 顧客名   売上 10/1 山田太郎  1000 10/5 中村次郎  2000 10/10 鈴木三郎  1000 10/22 中村次郎  2000 10/31 山田太郎  1000 この時に、10月1か月の顧客数をカウントしたいのです。 上記であれば、山田太郎、中村次郎、鈴木三郎の3人ということになるはずです。 どのようにすればできますでしょうか。

  • 条件にあった複数データを組合わせて別のセルに表示するには?

    例えば、以下のデータがセルに入っていたとして A列には姓 B列には名 A1:鈴木  B1:一郎 A2:鈴木  B2:次郎 A3:鈴木  B3:三郎 A4:佐藤  B3:あきら A5:佐藤  B3:けんた 同じ姓にあてはまるデータの名を、組合わせて別のセルに表示したいのです。 結果イメージ C1:鈴木  D1:一郎 次郎 三郎 C2:佐藤  D2:あきら けんた このようなことAccessかExcelで出来ますか?

  • 【エクセル】リストの照合について教えてください!!

    sheet1に、下記の様に600件の氏名が書いてあります。 A      B 1     山田太郎  2     鈴木花子 ・・・ 600   佐藤次郎 sheet2に、地域と氏名がずらっと書いてあります。 A      B      C     D    E 東京都   神奈川県   埼玉県   千葉県  茨城県 山田太郎 鈴木太郎 山田花子 佐藤次郎 ・・・ このsheet2の地域を、sheet1のC列に下記の様に入れたいのですが、 どの様に行ったら良いでしょうか? みなさんのお知恵をください!!宜しくお願い致します。 A      B      C 1     山田太郎   東京都 2     鈴木花子   神奈川県 ・・・ 600   佐藤次郎   埼玉県

  • Excel上でのセルの並び替えについて

    Excel2007にて下記作業は可能でしょうか? (シート1) A1   B1   C1   D1 田中  ○   鈴木  △ A2   B2   C1   D2 浜田  ×        A3   B3   C1   D3 後藤  ○   加藤  × ↓ (シート2) A1   B1   C1 田中  ○ A2   B2   C2 鈴木  △ A3   B3   C3 浜田  ×    A4   B4   C4 後藤  ○ A5   B5   C5 加藤  × 上記のとおり別シートに自動で並び変える数式はあるのでしょうか? データの量が多いのと、Excelの操作ができない人用に自動化したいのですが。

  • Excelでのセルの検索

    セルの検索方法について、質問します。 現在の表       A    B      C     D --+-------+-------+-------+-------+------+-------+------- 1   鈴木   加藤   斎藤    --+-------+-------+-------+-------+------+-------+------- 2   佐藤   清水         --+-------+-------+-------+-------+------+-------+------- --+-------+-------+-------+-------+------+-------+------- 3   山田              --+-------+-------+-------+-------+------+-------+------- 理想形       A    B      C     D --+-------+-------+-------+-------+------+-------+------- 1   鈴木   加藤   斎藤   斎藤 --+-------+-------+-------+-------+------+-------+------- 2   佐藤   清水         清水 --+-------+-------+-------+-------+------+-------+------- --+-------+-------+-------+-------+------+-------+------- 3   山田              山田 --+-------+-------+-------+-------+------+-------+------- 上記のような表(現在の表)で、D列に空白セル以外の一番右のセルを探して表示できるような関数を探しているのですが?。 仕事で進捗表の作成を行っており、困っていますのでよろしくお願い致します。

  • エクセルVBA 複数の条件を含む対象を抜き出す。

    エクセルVBAについて質問です。 エクセルのバージョンは2003と2007を主に使用しています。 下記の様なデータがあるときに、部活が「野球」でかつクラブは「囲碁」に入っている生徒の学籍番号を別のシート(Sheet2)のB3から下に順にリスト化するマクロがどうしても出来なくて困っています。 find next等を使うのでは無いかと色々してみましたが上手く出来ない現状です。 <sheet1>    A      B      C       D    E 1 学籍番号 学年    名前     部活   クラブ 2 2222222   1    山田 太郎   野球   囲碁 3 9854923    2   吉田 次郎   剣道   絵画   4 1111111    3   佐藤 三郎   野球   囲碁 5 8888883    1   米山 権蔵   卓球   囲碁