プロが教える店舗&オフィスのセキュリティ対策術

エクセルで部分一致したものを表示する方法について

シート1
書籍名 発行年月
A     2010/10/18
B     2009/12/17
C     2011年4月初旬
:        :

シート2
カレンダーを作成してあります。

カレンダーの日付とシート1の発行年月が完全一致、または
部分一致すれば、それをカレンダーの予定欄に表示したく思います。


カレンダーは、以下のURLを参考に作成しました。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituy …

関数を利用して表示させるにはどうしたら宜しいでしょうか?

A 回答 (3件)

>予定欄の下に新たな行を追加して、そこに2番目にマッチした書籍名を追加する形が理想です。



数式が複雑になりますが、日付の下に適当な行を追加して、A4セルに以下の式を入力して下方向に最大重複数、右方向にオートフィルしてください。

=IF(COUNTIF(Sheet1!$B$2:$B$10,A$3),INDEX(Sheet1!$A:$A,SMALL(INDEX((A$3<>Sheet1!$B$2:$B$10)*1000+ROW($B$2:$B$10),),ROW(A1))),"")&""

ただし2行目以降の週については、「A$3」の部分の「3」の数字を適宜該当行に変更してください。

部分一致のデータを欄外に表示することについては、例えば以下のような数式を入力し、右方向に1つ、下方向に適当数オートフィルすれば、雑誌名と日付部分が表示できます。

=INDEX(Sheet1!A:A,SMALL(INDEX(ISERROR(FIND(TEXT($A$1,"yyyy年m月"),Sheet1!$B$2:$B$10))*1000+ROW($B$2:$B$10),),ROW(A1)))&""

日付部分の「・・・年・・・月」の部分が不要ならSUBSTITUTE関数でその部分を削除してください。

この回答への補足

MackyNo1さん

ご回答頂きましてありがとうございました。

上記の関数で私のやりたかったことを完璧に実現することができました。
ご教授頂けましたことに大変感謝しております。

感無量です...。

お礼欄に記述したかったのですが、リンク先に問題があるためか
接続できなかったため補足欄にて失礼致します。
申し訳ありません。


この度は、ほんとうにありがとうございました。

補足日時:2010/10/26 09:39
    • good
    • 0
この回答へのお礼

MackyNo1さん

ご回答頂きましてありがとうございました。
上記ご回答でやりたかったことが完璧に実現できました。

この度は、ご教授頂き誠にありがとうございました。
感無量です...。

お礼日時:2010/10/25 20:22

補足情報のレイアウトで、元データがSheet1のA2:B10セルに入力されているなら、完全一致の書籍名を表示するにはSheet2のA4セルに以下の式を入力し右方向にオートフィルします。



=IF(COUNTIF(Sheet1!$B$2:$B$10,A3),INDEX(Sheet1!$A$2:$A$10,MATCH(A3,Sheet1!$B$2:$B$10,)),"")

ちなみに部分一致の場合は、数式が非常に複雑になりますので、まず、どのような日付パターンがありどのように表示させたいのかをもう少し具体的に例示してください。

例えば・・・・年・・・月・・・旬以外の表現がなく、その日付の先頭セルに書籍名と「(中旬)」のようなデータ付きで表示する(あるいはその日付範囲を色付けする)など、できるだけ詳しく説明してください。

この回答への補足

MackyNo1さん

ご回答頂きましてありがとうございます。上記方法で完全一致したデータを予定欄に追記することができました。

例が少し変わってしまい申し訳ございませんが、

Sheet1
     A             B               C
1    物品一覧         配送日時     
2    書籍A        2011年1月(中旬)
3    書籍B        2010年10月1日
4    書籍C        2011年3月(初旬)
5    書籍D        2011年3月4日~10日
6    書籍E        2011年1月29日
7    書籍F        2010年10月1日
:

上記のシート例のように、書籍Bと書籍Fの発送日が同一の場合、ご教授頂いた関数式ですとファーストマッチで最初に一致した書籍名が表示されます。
これを、マッチしたすべての書籍名を同一の予定欄に追加する方法はありますでしょうか?
予定欄の下に新たな行を追加して、そこに2番目にマッチした書籍名を追加する形が理想です。

>ちなみに部分一致の場合は、数式が非常に複雑になりますので、まず、どのような
>日付パターンがありどのように表示させたいのかをもう少し具体的に例示してください。

具体的な例は以下の通りです。

Sheet1
     A             B               C
1    物品一覧         配送日時     
2    書籍A        2011年1月(中旬)
3    書籍B        2010年10月1日
4    書籍C        2011年3月(初旬)
5    書籍D        2011年1月4日~6日
6    書籍E        2011年1月29日
:

書籍の発送日が書籍Eのように確定しているものがあれば、完全一致で問題ないのですが、
書籍Aや書籍Cのような場合、年月の比較しかできません。
従って、その月の終わり(最終行)に行を追加して未定欄として設けようと考えています。

具体的には、以下のような表示結果を求めています。


Sheet2
        A             B               C
1      2011/1/1
2       日             月              火
3       04             05              06
4      書籍D           書籍D            書籍D
:
:
11       28             29              30
12      書籍E           予定欄            予定欄
13(追加行) 
14(追加行)  未定
15(追加行) 書籍C(初旬)
16(追加行) 書籍A(中旬)
:

以上、厚かましいようで申し訳ありませんが、何卒ご教授のほどお願い致します。

補足日時:2010/10/22 21:24
    • good
    • 0

>カレンダーの日付とシート1の発行年月が完全一致、または


>部分一致すれば、それをカレンダーの予定欄に表示したく思います。

カレンダー(1枚のシートに1カ月分?)の予定欄はどこにあるのでしょうか?
また、その場所に何を表示したいのでしょうか?

一般的に、完全一致の場合は関数で比較的簡単に対応できると思いますが、原則として「2011年4月初旬」のような文字列とシリアル値の比較はできませんので数式に工夫が必要となります。

文字列データが検索値になる場合は、どのようなデータがあるのか、もう少し多くの具体例をあげたほうが、皆さんから的確な回答が寄せられると思います。

この回答への補足

ご回答頂きましてありがとうございます。

>カレンダー(1枚のシートに1カ月分?)の予定欄はどこにあるのでしょうか?
>また、その場所に何を表示したいのでしょうか?

予定欄は、日付のセルのすぐ下のセルに作成しています。
    A
1 2010/10/1
2   日      月      火 
3   1       2       3
4  予定欄    予定欄    予定欄

上記のようなシートになっおり、シート1の発行年月とシート2(上記)の日付を比較して完全一致したものがあれば、シート1の書籍名を予定欄に追加したく思います。

部分一致はできたらでいいのですが、まず完全一致したものを表示するにはどうしたよろしいでしょうか?

補足日時:2010/10/21 10:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!