• 締切済み

エクセル2007 重複しない検索用番号

いつもお世話になっています。 下記のようにデータがあり、年と月の横にいろいろなデータがあります。 検索用に =”リファレンスナンバー”+”年”+”月” とすると、重複する番号ができ、検索ができません。 重複しない検索用の番号を作るにはどうしたらよいでしょうか? ”+”ではなく、”&”を使う手もあるのですが、それだと長くなってしまうので、短い検索用の重複しない番号を作るにはどうしたらよいでしょうか? どなたか教えてください。 よろしくお願いいたします。 リファレンスナンバー と年 月 90279001 2010 8 90279001 2010 9 90279001 2010 10 90279001 2010 11 90279001 2010 12 90279001 2011 1 90279002 2010 8 90279002 2010 9 90279002 2010 10 90279002 2010 11 90279002 2010 12 90279002 2011 1

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 例えば、A列にリファレンスナンバー、B列に西暦年を表す数値、C列に月を表す数値が入力されている場合(添付画像の左側)、検索用の番号を表示する全てのセルには、次の関数を入力されると良いと思います。 =IF(COUNT(INDEX($A:$A,ROW()),INDEX($B:$B,ROW()),INDEX($C:$C,ROW()))=3,(TEXT(INDEX($A:$A,ROW()),"00000000")&INDEX($B:$B,ROW())&TEXT(INDEX($C:$C,ROW()),"00"))+0,"")  又、A列にリファレンスナンバー、B列に日付がシリアル値形式のデータとして入力されている場合(添付画像の右側)、検索用の番号を表示する全てのセルには、次の関数を入力されると良いと思います。 =IF(COUNT(INDEX($A:$A,ROW()),INDEX($B:$B,ROW()))=2,(TEXT(INDEX($A:$A,ROW()),"00000000")&TEXT(INDEX($B:$B,ROW()),"yyyymm"))+0,"")  尚、どちらの場合も、セルの書式設定の表示形式は、[ユーザー定義]の 00000000000000 として下さい。(0が14個)  因みに、上記の関数では、元データのセルに対して、切り取りや削除、挿入等の編集作業を行なっても、セルの位置が上下方向にずれる分には、動作に影響はありません。

dartford7
質問者

お礼

ご回答ありがとうございました。 これ使ってみます!

回答No.2

検索値に年月の情報を持たせる意味が分かりませんが、1900~2899年までなら C2セル =A2&TEXT(MOD(TEXT(B2,"yyyy"),1000),"000")&TEXT(B2,"mm") とすれば1桁減らせます。 考えうる重複の数が分からない場合は、再検討の必要がありますが、 D2セル =COUNTIF($C$1:C1,C2) E2セル =C2+12*D2 ただし重複は7つまで

dartford7
質問者

お礼

ご回答ありがとうございました。 年月の情報を持たせる意味ですか? 他に検索用の情報がないからです。

回答No.1

長さと重複しないことと、dartford7さんにとってどちらが重要なんですか? 重複しないことが優先なら、「&」を使えば絶対に重複しません。 そもそも検索用なら足し算した値よりもただ並べた値のほうが間違えにくく分かりやすいと思いますが。

dartford7
質問者

お礼

ご回答ありがとうございました。 重複しないことが優先なのですが、確か何か短い番号で出たような気がしたので。。。

関連するQ&A