• ベストアンサー

excelで自動的に連番をつける関数について

excel2010を使用しています。 題名のとおりexcelで連番をつけたいと思っているのですが、ただ単純に1から順にというわけではなく困っています。 というのも例のように途中で重複しているデータについては、´(ダッシュ)などで印をつけておきたいのです。 【例】 A  B 1 りんご 2 みかん 3 ぶどう 3´ ぶどう 4 いちご 5 メロン 5´ メロン 5´ メロン 6  桃 B列にあるデータがあり、それをもとに重複しているデータは印をつけた連番をA列にふりたいのですが、どのような関数で出来ますでしょうか?よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

A1に =IF(B1="","",SUMPRODUCT(1/COUNTIF($B$1:B1,$B$1:B1))&IF(COUNTIF($B$1:B1,B1)=1,"","'")) 以下コピー などのようにでいいです。 「’」を付けるなどをしているので、計算された結果は(1,2,3と数を数える)「数値」ではなく「文字列」になります。

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

B列には同じ果物の名前が順序良く並んでいるとは限りませんので次のようにしてはどうでしょう。 データは2行目から下方に入力されているとします。 A2セルには次の式を入力して下方にドラッグコピーします。 =IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,MAX(A$1:A1)+1,INDEX(A$1:A1,MATCH(B2,B:B,0))&"'"))

noname#154698
noname#154698
回答No.4

COUNTIF関数で累計することができます。その累計が2以上の場合、A列に入っている文字列に「’」を追加するように書式設定や文字列連結をして表示させればいいと思います。 たとえばC列に =COUNTIF(B$2:B2,B2) を下側にコピーすれば累計が出ます。 これが2以上になっている場合に「’」をつけるので、 =IF(C2>2,A2&"'",A2) でしょうか。

  • multiface
  • ベストアンサー率36% (308/834)
回答No.2

書き忘れました。 A2の式を下方向にコピーしてください。 できれば、右寄せにしてからコピーした方がグッドです。

  • multiface
  • ベストアンサー率36% (308/834)
回答No.1

りんごがB1だとすると、次の式になります。 A1・・・単純に1を入れてください。 A2・・・=IF(B1=B2,MAX(A$1:A1)&"'",MAX(A$1:A1)+1) ただし、'の付いた数字は文字データになってしまうので、セル内で左に寄ってしまいます。 このあたりはA列を全て右寄せにするなどで調整してください。