エクセルで文字列の数え方と一覧表作成方法を解説

このQ&Aのポイント
  • エクセルで文字列を数えて一覧表にする方法について解説します。具体的な例として、複数の名前が登場する表を作成し、各名前の出現回数を数える方法を紹介します。
  • 具体的な表の例を示しながら、名前の出現回数をカウントする方法を詳しく解説します。名前がA列とB列に交互に登場する場合も、名前の出現回数を正確にカウントする方法を紹介します。
  • エクセルを使用して、名前の出現回数を集計し、一覧表を作成する方法を解説します。名前が重複して登場する場合でも、それぞれの名前の出現回数を正確にカウントする方法を説明します。
回答を見る
  • ベストアンサー

エクセルで文字列を数えて一覧表にしたいのですが

たとえばですが、2人一組で配達に行きます。 メンバーは、太郎、次郎、三郎、四郎、五郎・・・と多人数です。 A1に太郎、B1に三郎 A2に次郎、B2に五郎 A3に太郎、B3に次郎 ・ ・ ・ と、いうような表ができます。 このとき、*郎は何回配達にいったのかをカウントしたいのです。 *郎は、A、Bのどちらに登場するかわかりませんし、 何回も登場しますし、組み合わせもばらばらです。 最終的に、太郎 15回、次郎 8回、三郎 21回・・・というように分かるようにしたいので、 仮にD1に太郎、E1に次郎、F1に三郎・・・の名前 (ダブって登場する名前を一つにまとめて、登場する全ての名前を残したい)、 D2に太郎、E2次郎、F2に三郎の回数(登場した名前の回数を数字で求めたい) というようにしたいのです。 エクセルの詳しい方、よろしくお願いします。

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

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

D1,E1,F1…に太郎,次郎,三郎…を列記します D2に =COUNTIF($A:$B,D1) と記入し,右にコピーします。 ん?? 誰の名前が並んでいるのかも判らないご質問ですか? 手順: シート2のA1に 名前 と記入する シート1のA列の名前全部をシート2のA2以下にコピー貼り付ける シート1のB列の名前全部をシート2のその下にコピー貼り付ける Excel2007以降を使い,データタブの「重複の削除」を使って重複を省いた名前の一覧を作成する Excel2003以前しか使えないときは,下記を参考に「フィルタオプションの設定」を使い,名前の一覧を作成する http://www.wanichan.com/pc/excel/2003/05/192.html 作成した一意の名前リストをコピーし,シート1のD1に「形式を選んで貼り付け」の「行と列を入れ替える」で貼り付ける #無理すれば出来なくはないけど,関数でやる価値のない操作です。手を動かしてちゃっちゃとコタエを出してください。

tax_sos
質問者

お礼

ご回答ありがとうございました。 そうなんです。 名前は確定されたものではなく、新入社員やアルバイトなど 新しい名前がたくさん出てきますし、ランダムでばらばらです。 できれば、操作無しでAB列のデータ入力だけで、 最終的な表が完成させることができればベストなのですが、 良い方法はないでしょうか?

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

基本的にはA,B列で太郎が現れるセルの個数がわかれば良い簡単な質問ではないか。 色々文章を書く必要もない。 だだしCOUNTIF関数は、太郎に当たる、名前の重複しない漏れのないリストが、1列(式の複写で楽をするため)にあることが必須。 そういう点を質問する、質問文にすべきだ。 ーー 但し関数では難しいのだ。 操作でも、データが2列にあるためにフィルタオプションの設定ー重複するレコードは無視するが使えない。 色々言わないで、B列を、A列最下行の次以下にコピペして、データーフィルターフィルターフィルタオプションの設定ー重複するレコードは無視する でやることを勧める。結果の名前群を好きな列に持ってくることを指定できる。 ーー ほかにはVBAを使って、名前の重複しない漏れのないリストが作れるが質問者には丸写し利用しかないだろう。 初心者の間は、あれこれ言わず。操作も使うこと。そもそもエクセルは、第1は操作のソフトである。 ーー 関数で重複しない漏れのないリスト、を出すのは難しいと思う。式が複雑になると思う。

tax_sos
質問者

お礼

説明が下手なのは認めます。 ご回答を頂きました皆様、どうもありがとうございました。 3.4番の回答がされていることは更新していなかったため、 見えておらず、2番の方をベストアンサーにしましたが、 本来は3番の方へ送りたいものでした。 3番の方へ、この場を借りて、お詫びして訂正します。

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

名前も新規に追加されれば自動で表示され回数も表示するようにするには関数を使う場合でしたら作業列を作って対応するのがよいでしょう。例えば次のようにします。 A列およびB列のデータは2行目から下方に入力されるとします。 CおよびB列は作業列としてC2セルには次の式を入力してD2セルまで横にオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。 =IF(A2="","",IF(COLUMN(A1)=1,IF(COUNTIF($A$1:$B1,$A2)>0,"",COUNT($C$1:$D1)+1),IF(COLUMN(A1)=2,IF(OR(COUNTIF($A$1:$B1,$B2)>0,$A2=$B2),"",COUNT($C$1:$D1)+COUNT($C2)+1),""))) これでC,D列には初めての名前には1から順に番号が振られます。 F列から右横の列に氏名や回数を表示させることにします。 F1セルには次の式を入力して右横方向にオートフィルドラッグコピーします。 =IF(COUNTIF($C:$C,COLUMN(A1)),INDEX($A:$A,MATCH(COLUMN(A1),$C:$C,0)),IF(COUNTIF($D:$D,COLUMN(A1)),INDEX($B:$B,MATCH(COLUMN(A1),$D:$D,0)),"")) これで氏名が表示されます。 回数を2行目に表示するためにF2セルには次の式を入力して右横方向にオートフィルドラッグコピーします。 =IF(F1="","",COUNTIF($A:$B,F1))

tax_sos
質問者

お礼

ご回答ありがとうございます。 すばらしい!の一言です。 ありがとうございました!

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

ありがちな,ご自分の首を絞めるだけのご相談です。 ご利用のエクセルのバージョンも,相変わらず情報提供が無いままですし。 次の通りに行ってください。 手順: シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub worksheet_change(byval Target as excel.range)  dim h as range  on error resume next  set target =application.intersect(target, range("A:B"))  for each h in target  if h <> "" then  if application.countif(range("D1:IV1"), h.value ) = 0 then   range("IV1").end(xltoleft).offset(0, 1) = h.value  end if  end if  next end sub ファイルメニューから終了してエクセルに戻る C1セルにXと記入する(ダミーデータなので別にスペースとかでもイイし,アナタが何かに使ってるならそれでいいです) A列B列に名前を記入すると,どんどんD1以降に勝手に追記していく。 以上です。

tax_sos
質問者

お礼

ご回答ありがとうございます。 申し遅れましたがVER.2003でした。 おっしゃるとおり、首が絞まる感じがします。 前回の方法を採用したいと思います。 ありがとうございました。

関連するQ&A

  • 岡崎次郎三郎や茶屋四郎次郎

    岡崎次郎三郎信康や茶屋四郎次郎の「次郎三郎」とか「四郎次郎」ってどういう意味ですか? ほかに有名な、例えば「太郎次郎」とか「三郎次郎」って名前が付く歴史人物はいますか? 教えて下さい。 お願いします。

  • エクセルの集計での質問

    A列に日付、BからF列に担当者名(1~5)が入っています。 この表で誰が何日稼働したか調べたいのですが、日付の被りがあるのと、例えば▲▲さんが「担当者1」、●●さんが「担当者2」と決まっているわけでなく、早いもの順に「担当者1~5」までに名前が入っています。 A B C D E F 日 担1 担2 担3 担4 担5 1/3 太郎 次郎 花子 三郎 和子 1/3 次郎 太郎 三郎 美和 和子 1/4 花子 次郎 孝夫.......... この場合求められたものが 1/3 太郎 ×1、次郎 ×1、三郎×1、花子×1、和子×1 、美和×1 1/4 花子×1、次郎×1、孝夫×1 なので 太郎1日 次郎2日 三郎1日 花子2日 和子、美和、孝夫各1日 という風にエクセルで集計できないでしょうか?

  • 「並び替えとフィルター」を使って空白以外を抽出

    シート1に別のシートから抽出した人名が並んでいます。 シート2にも別のシートから抽出した数字が並んでいます。 人名と数字は同じ行/列に格納されます。 シート1もシート2も空白が含まれています。 シート3に人名と数値を隣り合わせで格納したいのです。 シート1とシート2共に、「並び替えとフィルター」を使って空白以外を 抽出したいのですが、「昇順/降順」を使うと、人名と数字の関連が崩れる ので困っています。 「並び替えとフィルター」で不可能ならば、別な方法でも構いません。 ご教示いただけますようお願い致します。 シート1                 シート2   A   B   C   D         A   B   C   D 1 太郎     次郎         1 100       10 2 三郎 花子     春子     2   5  200       50 3         秋子 夏子     3         500  100 4 四郎 五郎 六郎         4  80  300  400 5 七郎         冬子     5 300            60 シート3   A   B   C   D   E   F   G   H 1 太郎 100  花子 200  次郎 10  春子 50 2 三郎   5  五郎 300  秋子 500  夏子100      3 四郎  80          六郎 400  冬子 400    4 七郎 300      5                 

  • 【Excel VBA】コピー&ペーストの自動化

    以下のエクセル表があり、同じ日付ごとのデータを自動的に別のシートに移したいです。 例えば、別のシートに、2004/1/1に書かれているデータのみを移す。(シート2参照) それをVBAで書くにはどうすればいいでしょうか。 マクロの記録をするのではなく、この表の日付を増やしたり変えたりしても機能するようにコードを書きたいと思っております。 For LoopとIf thenを使い、A1セルがそれより下のセルの値と異なるまでコピーし続ける、、といった作業をすればよいのでしょうか。 全くの初心者で勉強中です。よろしくお願いいたします。 列行 A B 1 2004/1/1 太郎 2 2004/1/1 次郎 3 2004/1/1 三郎 4 2004/1/1 一郎 5 2004/1/1 五郎 6 2005/3/3 三郎 7 2005/3/3 次郎 8 2005/3/3 太郎 9 2005/3/3 四朗 10 2006/2/2 次郎 11 2006/2/2 一郎 12 2006/2/2 太郎 シート2 2004/1/1 太郎 次郎 三郎 一郎 五郎 シート3 2005/3/3 三郎 次郎 太郎 四朗 シート4 2006/2/2 次郎 一郎 太郎

  • エクセル 列の空白場所に貼り付け

    よろしくお願いします。 EXCEL2003にて300人程の名簿を作っているのですが、 A列に名前、B列にフリガナを作ってあります。 それをA列にフリガナ名前フリガナ名前・・・・に変えたいのですが、どうすればいいでしょうか!? A列の名前と名前の間に空白の欄は空けました(1空白2一郎3空白4二郎5空白6三郎・・・・) 文面通りエクセル初心者です。 ご教授よろしくお願いします。

  • アクセス2000で 文字列の一部の文字の置換方法

    氏名フィールドに入力している一郎、次郎、三郎という名前の「郎」を、「*郎」で検索と置換で検索しました。これを「朗」に置換したいのです。 置換後の文字列を「*朗」とすればそれまでのフルネームが全て「*朗」になりますし、「朗」としても同じです。 検索と置換で、一郎、次郎、三郎を一朗、次朗、三朗に置換する方法を教えていただけませんか。

  • Excel マクロ 特定の列のみカット&ペースト

    Excel マクロ初心者です。IF文を使用しているのですが上手くいきません。 A列が「次郎」の時、1つ上の行のB~E列をカットし次郎の行へペースト、B列が空白の行削除・A列に山田を追加する。 例 A列|B列|C列|D列|E列 花子|a|あ|か|g 太郎|c|う|き|g 次郎| | た | | 三郎|e|お|く|g マクロ後 A列|B列|C列|D列|E列 山田花子|a|あ|か|g 山田次郎|c|う|き|g 山田三郎|e|お|く|g 色々と調べて試してみたのですが知識不足の為、上手くいかず・・・全文載せていただけると、とても助かります。

  • Accessで一致データを抜いて項目をずらす方法

    Access2000を使用して、テーブル1のフィールド2~5で、テーブル2と一致したフィールドを抜いて項目をシフトさせたいのですが、どのような方法があるのでしょうか。 <元テーブル>    フィールド→ 氏名, 名1, 名2, 名3, 名4 ・テーブル1の項目 山田,花子,次郎,三郎,四郎           鈴木,五郎,六郎,七朗,和子           佐藤,和子,一郎,太郎,四郎 ・テーブル2の項目 山田,花子           鈴木,七朗           鈴木,和子          佐藤,一郎           佐藤,四郎           佐藤,和子 <変換後テーブル>テーブル1を基準として   フィールド→ 氏名, 名1, 名2, 名3, 名4           山田,次郎,三郎,四郎,null           鈴木,五郎,六郎,null,null           佐藤,太郎,null,null,null 分りずらい説明で申し訳ありませんが、宜しくお願いします。

  • 計算式を教えてください

    下記の左表を、矢印右側のような表に集計したいのですが、 うまく計算式ができません。教えてください。 計算式で出したいのは、右表の「40」「太郎」「15」「次郎」・・ のデータの部分です。    名前  ランク  点数      1位 名前  2位 名前 ・・・ 総務 三郎  3位  5  ⇒ 総務  40 太郎   15 次郎 ・・・ 総務 太郎  1位  40    経理  60 五郎   50 司郎 ・・・ 総務 次郎  2位  15   経理 司郎  2位  50 経理 五郎  1位  60 経理 六郎  3位  4

  • エクセル関数

    同一ファイル内に二つのシートがあります。 「シート1」 コード  名前   金額       100001 太郎   15,000    200001  次郎 20,000    200501 次郎´ 25,000 300001  三郎 30,000    400001  四郎 35,000 「シート2」 (1)    (2)    (3)    (4)       15,000 20,000 30,000 35,000  25,000 上記のようにシート1にある6桁のコードの先頭の数字を元に、シート2の上部にある(1)~(4)の下に金額が表示されるようにしたいのですが、ご教示の程お願い致します。

専門家に質問してみよう