ここから本文です

【エクセルのタブをまたいで重複する値の算出方法】 エクセルのシートタブが15...

アバター

ID非公開さん

2019/3/2717:39:03

【エクセルのタブをまたいで重複する値の算出方法】

エクセルのシートタブが15枚あるのですが
その中から全てのシートで重複している文字配列(文字)を抽出したいのですが、

方法はありますでしょうか?

例:
▼シート1
バナナ
りんご
なし
洋ナシ

▼シート2
バナナ
いちご
洋ナシ
プラム

▼シート3
バナナ
ヨーグルト
プルーン
洋ナシ




→全てのシートに重複している値は「バナナ」「洋ナシ」です。
と出したいです。

何か算出するための関数はありますでしょうか?


※算出したいデータは1シートの行が10000以上あります。
全てのデータを1シートにし、重複を探す以外は方法ないでしょうかね…?

閲覧数:
31
回答数:
3
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

アバター

ID非公開さん

2019/3/2819:12:46

そのような関数はなく作るしかないと思います。
しかしその抽出結果はどのようなフォーマットでどこに出力したいのですか?
ワークシートに入れたいとして、そのシートも検索対象なのでしょうか?
開始シート名と、終了シート名を指定すると、それら全てのシートに共通する文字列の配列を返す関数を書いてみました。
ALT+F11を押して、VBEを開き、[挿入]-[標準モジュール]として、下記のコードを張り付けて下さい。

Function MatchAllSheet(シート名1 As String, シート名2 As String)
Dim Sh1index As Long, Sh2index As Long, Sht As Worksheet
Dim R As Range, I As Long
Dim Finds As New Collection, V() As Variant, x As Variant
Sh1index = Worksheets(シート名1).Index
Sh2index = Worksheets(シート名2).Index
If Sh1index > Sh2index Then
Sh1index = Sh2index
Sh2index = Worksheets(シート名1).Index
End If
For Each R In Worksheets(Sh1index).UsedRange
If R <> "" Then
For I = Sh1index + 1 To Sh2index
If Worksheets(I).UsedRange.Find(R) Is Nothing Then GoTo notFind
Next
On Error Resume Next
Finds.Add R, R
On Error GoTo 0
End If
notFind:
Next
ReDim V(Finds.Count)
I = LBound(V)
For Each x In Finds
V(I) = x
I = I + 1
Next
MatchAllSheet = Application.WorksheetFunction.Transpose(V)
End Function

あとは、MatchAllSheet("開始シート名","終了シート名")といった感じで共通する文字列を抽出できます。
1列の配列を返す関数ですので、TEXTJOINで連結するなり、複数セルを選択して配列数式として入力するなりして使ってみて下さい。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

chi********さん

2019/3/2718:15:48

> 何か算出するための関数はありますでしょうか?
関数はありません。

> 全てのデータを1シートにし、重複を探す以外は方法ない
> でしょうかね…?
少なくともマクロでやればできます。

後は ピボットテーブルで [複数のワークシート範囲]を使っても
できます。

データベースクエリで重複を省いたデータを Union Allで繋いだ
ものを集計して個数が「15」になるデータだけ抽出してやっても
できるでしょう。

できるかどうかの問題であればですが。

ID非公開質問は嫌いなので 後は他の方にお任せします。

all********さん

2019/3/2717:46:53

>何か算出するための関数はありますでしょうか?
そんな関数ありません。

マクロなら出来ると思いますが
私は判りません。
マクロの回答待ってください。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる