アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2002を使用しています。

まだ初心者で関数などあまりわかりません。
一生懸命考えてますが、なかなかいい案が思いつかないので
どうかどうかよろしくお願いいたします!
---------------------------------------

社員の名前が1000行ぐらいに渡って入っています。
そこには同じ名前が何度か出てきます(連続ではなくとびとびで)。
その場合、たとえば田中さんだったら
一番最初に田中とでてくる行の隣のセルだけに
1とカウントしたいのです。
たとえば下記のような感じです。

最終的には人数の合計を出したいのです・・・

------------------------------------
  A  B
1  名前 人数
2 田中 1
3 鈴木 1
4 田中
5 山本 1
6 鈴木
------------------------------------

同じ名前が連続のときであれば、IF(A2=A1,\"\",1)
という式を思いついたのですが、それだと
離れてまた登場したときに、同じ名前に1が入ってしまいます。

何かいい方法、関数などございましたら、
ぜひぜひお教えください!!
よろしくお願いいたします。

A 回答 (9件)

更に…


#1です。

ソートして数えるんじゃダメですか?
まず、例の名前の前にセルを1列追加します。そこに1から順番に最後まで通し番号を入れておきます。(オートフィルで簡単に作れます。)以下のように。
  A  B
1 番号 名前
2  1  田中
3  2  鈴木
4  3  田中
5  4  山本
6  5  鈴木
それから、A2~B6(データの最終)までを選択し、「データ」-「並べ替え」でB列で並べ替えます。
そうすると同じ名前の人が集まってきますので、C2に
=if(B2=B1,c1+1,1)
と入力していきましょう。1番から次の名前の人まで連番を付けてくれます。
最初に通し番号をつけているので、並べ替えで元の順番に戻ります。(今度はA2からC6(最後まで)をA列で並べ替え)

どうでしょう?
    • good
    • 0

#4のご回答とやや違うようですが


(テストデータ)
A列A2よりA8に下記データを入れる。
a
s
a
c
d
a
c
(演算式)
B2に=IF(ISERROR(VLOOKUP(A2,A3:$A$7,1,FALSE)),1,0)
といれ、下に複写する。(上記演算式は無理に改行されますが、正しくは1行です。)
(結果)B2以下下記の通りになるので
0
1
0
1
1
0
0
B9に=sum(B2:B8)を入れて3と出る。
最初のaの分は実は1であるので、3+1=4が正解です。
a,s,c,dの4つです。演算式で、表のA3:$A$7などの表の終わりを絶対番地にして、固定するのがミソです。
    • good
    • 0
この回答へのお礼

大変お礼が遅くなって申し訳ございません。
また皆様ありがとうございました。
ここであわせてお礼申し上げます。
皆様のおかげで助かりました!!!感謝しています。

お礼日時:2003/11/08 18:01

重複する名前を考慮して人数の合計を出したいのですね?


例えば、名前が1000行ある場合、合計を出したいセルに、
=SUMPRODUCT(1/COUNTIF(A1:A1000,A1:A1000))
と入力して下さい。
一発で人数の合計が出ます。
(但し、ブランクもカウントされますので、ご注意を)
    • good
    • 1

>何かいい方法、関数などございましたら


ということですので、まず、方法のほうを・・・
「フィルタオプション」というものを使うと、重複したデータを
省くことができます。

まずは、空いているセルに条件を作ります(A列に名前が入っているのであれば、G1とG2を使って(空いているところであればどこでもいいです)
名前
*
と入力してください。(*は半角で。名前というのはA1に入っている文字を使いましたが、もし、「氏名」とか「社員名」とかがA1に入っているのであれば、それと同じな前を入れます)そして・・・
「データ」→「フィルタ」→「フィルタオプションの設定」
抽出先 選択した範囲  (にチェックを入れます)
リスト範囲  社員名が入っているところすべてを範囲指定します(そのときフィールド名(列タイトル)今の場合であれば、「名前」と言うのも含めて範囲指定をしてください)そして・・・
検索条件範囲 G1:G2  を選択してください。(先ほど作った条件のところ)
抽出範囲   C1    を選択してください(空いているところであればどこでも可)
そして、重複するレコードは無視する にチェックを入れます。
そして、OK
すると、重複されているデータがなくなり純粋な社員名簿になると思います。
あと、人数を知りたいのであれば、COUNTA(a2:a1000)とどこかのセルに入れると
人数を数えることができます。

関数は、他の方も出されていますが、(#6さんのが簡潔でよいと思います)初心者の方ということですのでこんな方法もありますよー程度で、見てもらえるといいと思います。
=IF(MATCH(A2,$A$2:$A$1000,0)=ROW(A2)-1,1,"")
これは、MATCHという関数は、目的の文字や数字が、何行目にあるのか(または何列目にあるのか)を調べてくれる関数です。ここでは、範囲の中で「田中」と言う文字が何行目に出てくるかを調べています。複数「田中」と言うのがあれば、一番最初に出てくる場所の行数を教えてくれます。そして、ROWと言う関数は「行番号」を教えてくれる関数です。ここではA2番地の行番号を返してきて(つまり「2」と言うのが返ってきます)それに「-1」をして「1」にしています。そして、MATCHで出した結果と、ROW出だした行番号が一致したら、「1」を返すとというIF関数を使っています。確認してみてくださいね。
    • good
    • 0

セルB2に下記の式を入れ、必要分下へフィルドラッグします。



=IF(COUNTIF(A$2:A2,A2)=1,1,"")
    • good
    • 0

それぞれの人が最初に現れた時だけカウントしたいんですよね。

ログからユーザ数を
出す場合なんかにそういうことをしたくなりますね。そうすると、人数は名前リスト
の一番上から自分の1行上までに自分と同じ名前が見つからなかった時に1になるわけ
です。リストの最初は無条件で1ですけど。

B2: =1
B3: =if(iserror(vlookup(A3, $A$2:A2, 1, FALSE)), 1, "")

あとはB3をダ~ッとひっぱっておしまい。
    • good
    • 0

COUNTIFが有効ですね


一々横に数字を入れなくても良くなります
    • good
    • 0

こんにちは。



1.並べ替え(「データ」→「並べ替え」で名前によって並べ替え)
2.集計(「データ」→「集計」でグループの基準は‘名前’、集計する方法は‘データの個数’)

ではダメでしょうか。
簡単ですよ。
データの並べ替えをしてはダメだったらまた別の方法を書き込みます。
    • good
    • 0

こんにちは



田中さんだけを数えたりするのでしたら、
どこか空いているセルに
=COUNTIF(A1:A6,"田中")
で田中さんのカウントをしてくれます。
    • good
    • 1

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