このような表があります。
001 山田
001 山田
002 鈴木
003 田中
004 高橋
004 高橋
005 鈴木
005 鈴木
005 鈴木
006 高橋
007 鈴木
008 鈴木
この名前(「山田」等)を基準にして名寄せをし、かつデータ個数を集計しなくてはなりません。
普通に集計をすると、
001 山田
001 山田
山田 データ個数 2
002 鈴木
鈴木 データ個数 1
003 田中
田中 データ個数 1
004 高橋
004 高橋
高橋 データ個数 2
005 鈴木
005 鈴木
005 鈴木
鈴木 データ個数 3
006 高橋
高橋 データ個数 1
007 鈴木
008 鈴木
鈴木 データ個数 2
・・・という具合になりますが、番号(001等)の枠を超えて名寄せしたいのです。
希望する集計結果としては、
001 山田
001 山田
山田 データ個数 2
002 鈴木
005 鈴木
005 鈴木
005 鈴木
007 鈴木
008 鈴木
鈴木 データ個数 6
003 田中
田中 データ個数 1
004 高橋
004 高橋
006 高橋
高橋 データ個数 3
・・・という表示になるようにしたいのです。(番号も必要データなので消去せずに残したいです)
今までは、番号&名前レベルでまず集計し、あとは検索して同じ名前があればカット&ペーストという非常に面倒な作業をマニュアルでしてきました。
何かもっと楽にできる方法をご存知の方はぜひ教えてください。
No.8ベストアンサー
- 回答日時:
姓(B列)毎にデータの個数を集計したい。
ただしその順序はコード(A列)順を崩したくない。このような意味ですよね。それであればこのような方法はいかがでしょうか。
1行目を見出列とし、A1を「コード」、B1を「姓」とします。そして一旦最初のデータをデータ→並べ替えで最優先キーを姓、2番目のキーをコードにして並べ替えます。すると次のようになります。(なお、最初の順番を残しておく必要があるときはD列辺りに一連番号を振っておきます。)
コード 姓
004 高橋
004 高橋
006 高橋
001 山田
001 山田
003 田中
002 鈴木
005 鈴木
005 鈴木
005 鈴木
007 鈴木
008 鈴木
C列に作業列を設けます。C1の見出しを「コード順」とでもします。
C2に次の式を入力して、最下行までコピーします。
=IF(B2<>B1,A2,C1) 又は =IF(B2=B1,C1,A2)
すると次のようになります
コード 姓 コード順
004 高橋4
004 高橋4
006 高橋4
001 山田1
001 山田1
003 田中3
002 鈴木2
005 鈴木2
005 鈴木2
005 鈴木2
007 鈴木2
008 鈴木2
この表をデータ→並べ替えで最優先キーをコード順、2番目のキーをコードにして並べ替えます。すると次のようになります。
コード 姓 コード順
001 山田1
001 山田1
002 鈴木2
005 鈴木2
005 鈴木2
005 鈴木2
007 鈴木2
008 鈴木2
003 田中3
004 高橋4
004 高橋4
006 高橋4
この段階でA1:C13を選択、データ→集計をクリック、グループの基準を「姓」、集計方法を「データの個数」集計フィールドは「姓」にチェック、でOKします。
以上でお望みの結果が得られると思いますがいかがでしょうか。
まさに望み通りの結果になりました!
知識のない私でも簡単にできて有難いです。
毎月面倒かつミスを発生しかねない作業をしていましたが、これからは解放されます。
ありがとうございました!!
No.7
- 回答日時:
例データ
A2:B13
質問のデータを、B列+A列でソートは許してください。そうしないと下記は成り立ちません。そこをスタートにします。
A列 B列 C列 E列 F列
004高橋2004高橋
004高橋3004高橋
006高橋4006高橋
001山田63
001山田7001山田
003田中9001山田
002鈴木112
005鈴木12003田中
005鈴木131
005鈴木14002鈴木
007鈴木15005鈴木
008鈴木16005鈴木
005鈴木
007鈴木
008鈴木
6
OKWAVEでは列が崩れますがお許しを。14-17行はE、F列です
C1に0、
C2に=IF(B2=B1,MAX($C$1:C1)+1,MAX($C$1:C1)+2)
と入れてC13まで式複写。結果は上記C列。
E列のE2に
=IF(ISERROR(INDEX(A$2:$B$13,MATCH(ROW(),$C$2:$C$13,0),1)),"",INDEX(A$2:$B$13,MATCH(ROW(),$C$2:$C$13,0),1))
と入れてE17まで式を複写。結果は上記E列の通り。
F列のF2に
=IF(ISERROR(INDEX(B$2:$B$13,MATCH(ROW(),$C$2:$C$13,0),1)),COUNTIF($B$2:$B$13,F1),INDEX(B$2:$B$13,MATCH(ROW(),$C$2:$C$13,0),1))
と入れてF17まで式を複写。
結果は上記F列の通り。
No.6
- 回答日時:
ピボットテーブルを使って、下の様な表にできます。
番号 高橋 山田 田中 鈴木 総計
001 _ 2 _ _ 2
002 _ _ _ 1 1
003 _ _ 1 _ 1
004 2 _ _ _ 2
005 _ _ _ 3 3
006 1 _ _ _ 1
007 _ _ _ 1 1
008 _ _ _ 1 1
総計 3 2 1 6 12
(注)"_"は、空白セル
ピボットテーブルのレイアウトで、「行」に001(番号)、「列」に山田(名前)、「データ」に001(または山田)を入れれば、上のような表になります。
なお、質問のような形式にしたいなら、マクロを使えば可能です。
マクロの例を下に記載します。
下のマクロは、A列とB列「番号、名前」のデータが1~12行目から入っているとして、集計結果をD列、E列に書き出します。
Sub NameSearch()
Dim lng1 As Long
Dim lng2 As Long
Dim lngRow As Long
Dim lngRowName As Long
lngRow = 1
For lng1 = 1 To 12
If Application.CountIf(Range(Cells(1, "D"), Cells(lngRow, "D")), Cells(lng1, "B")) = 0 Then
lngRowName = lngRow
For lng2 = lng1 To 12
If Cells(lng2, "B") = Cells(lng1, "B") Then
Cells(lngRow, "D") = Cells(lng2, "A")
Cells(lngRow, "E") = Cells(lng2, "B")
lngRow = lngRow + 1
End If
Next lng2
Cells(lngRow, "D") = Cells(lng1, "B")
Cells(lngRow, "E") = "データ個数 " & lngRow - lngRowName
lngRow = lngRow + 1
End If
Next lng1
End Sub
なお、私の回答は、左のセルに番号、右隣のセルに名前が入っているのを想定しています。
もし、1つのセルに番号と名前が入っているなら、番号と名前を別々のセルに別ける必要があります。
No.5
- 回答日時:
#4さんの方法で名前を基準に並べ替えをすると番号が無視されますから、質問の趣旨からすると不都合だと思われます。
番号の橫に新に名前毎に山田は1、鈴木は2という風にcode番号を設けて、code順に並べ替えて名前を基準に集計すればできると思います。
一度並べ替えをしてしまうとデータは元に戻らないので、新しいシートにでもコピーして実行した方がいいと思います。
1人で考えている限りでは、code番号を設けるという発想には至らなかったので、とても新鮮な回答でした。
そういう方法があったのですね。
件数が多いので、code番号をマニュアルで設けるのは無理だなぁと思っていましたが、別の方の回答でそれも解決しました。
ご回答どうもありがとうございました。
No.3
- 回答日時:
002 鈴木
005 鈴木
005 鈴木
005 鈴木
007 鈴木
008 鈴木
これは、オーフィルタで名前ごとに表示すればよいだけです。
両方同時に表示したい場合、ピポットテーブルとLookup関数でできると思います。
具体的なセルの位置(001などはA列、名前はB列)などを提示して、答えてねっとできくと、誰かが計算式と方法を書いてくれると思います。
参考URL:http://www.kotaete-net.net/
No.2
- 回答日時:
これはピポットテーブルという機能を使うと、一発でできます。
書式はお望みどおりとは限らないですが、
山田 データ個数 2
鈴木 データ個数 6
田中 データ個数 1
高橋 データ個数 3
みたいになります。
データが増減しても、ピポットテーブルを更新すれば、集計値はすぐに更新されます。
ご回答ありがとうございます。
ピボットテーブルは試したことがあるのですが、データ個数の集計だけになってしまい、番号が消えてしまったのです。
発送物のチェックリストとして使用するため、名前と同じく番号も必要なのです・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
都道府県穴埋めゲーム
都道府県の名前を1人1つずつ投稿してください。全ての都道府県が出たら締め切ります!
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
エクセルで「名寄せ」と集計(個数と合計)の方法?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルについて
-
Excelの警告について
-
if関数。半角文字や全角文字で...
-
Googleスプレッドシートで、名...
-
(マクロ)シートを保護してもマ...
-
エクセルの関数
-
【Excel】効率的な関数式の組み...
-
エクセルの数式について教えて...
-
Excelの更新日時が自動で更新さ...
-
エクセル 入力があった場合のみ...
-
【Excel】 1つのセルの日にちを...
-
エクセルでファイルの最終更新...
-
ショートカットキー
-
Excelでの勤怠表の関数を教えて...
-
エクセルで80万行、50列位のデ...
-
エクセルについての質問です。 ...
-
【Excel】年月の値によって日の...
-
考えた式の戻り値が期待通りに...
-
FからI列で期限切れ及び期限7日...
-
エクセルについての質問です。 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
エクセルデーターから必要な項...
-
エクセルでファイルの最終更新...
-
複数のテキストファイルをexcel...
-
Excelの複数条件の関数
-
【マクロ】ファイル名の一括変...
-
EXCELの散布図で日付が1900年に...
-
マクロの処理が遅くなった
-
Excelの時刻の不思議
-
エクセルでの2項目比較および...
-
Excelマクロで空白セルを詰めて...
-
エクセルの数式バーのフォント...
-
ExcelでASCを使って全角を半角...
-
エクセルで80万行、50列位のデ...
-
今まで文字化けなく開けていたc...
-
エクセルのことで教えてくださ...
-
エクセルVBA 月の中で、月~土...
-
Excelでの表の作り方
-
Excel セルにおけるフォント設...
-
エクセルの質問です。 F列からL...
おすすめ情報