ALPHA
ALPHA
ALPHA
BRAVO
BRAVO
DELTA
TANGO
TANGO

上記のように縦に並んだ重複データを
以下のように集計する方法はないでしょうか。

ALPHA 3
BRAVO 2
DELTA 1
TANGO 2

WEB検索したところ、重複データ消去or抽出という
関数、マクロはあったのですが、
集計に至るまでのTIPSはありませんでした。
よろしくお願い致します。

A 回答 (4件)

表先頭に見出し行挿入→データ列に「データ名」(仮)とし→データ→集計で集計方法を「データの個数」、集計するフィールドを「項目」選択→OK


行横に1から3のグループ番号が表示されますので2番を選択すれば、ご期待結果になると思いますが如何でしょうか。
    • good
    • 1

フィルタオプションの設定を使って重複しないデータを抽出したら


その隣の列にsumcout関数を使ってデータの個数を集計するという方法はいかがでしょうか。

○フィルタオプションの設定
http://www11.plala.or.jp/koma_Excel/contents3/ma …
の「29-1重複しない抽出」を使ってD列に重複しないデータを抽出します。
○集計の方法
[説明02906]の表でE3のセルに「=coutif($A$3:$A$17,D3)」と入れ、E4以降のセルにドラックします。
    • good
    • 0

NO2です。


集計するフィールドは。「項目」ではなく「データ名」でした、訂正させて頂きます。
    • good
    • 0

先頭行に項目名を挿入した上で「データ」「ピボットテーブル」


項目名を行とデータに設定すれば上記の表が出来ます。
この内容をコピーして値として貼り付けるのが単純ですが...

抽出(オートフィルタ)を使うなら
隣の行に
=IF(COUNTIF($A$1:$A1,A1)=1,COUNTIF(A:A,A1),"")のようにすれば
ALPHA 3
ALPHA
ALPHA
BRAVO 2
BRAVO
DELTA 1
TANGO 2
TANGO
となります。「データ」「オートフィルタ」で空白でないセルを抽出すればOKです。
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Q縦並びデータを横並びに加工(Excel、CSV)

以下のようなCSVデータがあります。
県名,品物名,購入者
青森,りんご,西田さん
青森,りんご,斉藤さん
青森,りんご,山田さん
愛媛,キウイ,島田さん
愛媛,みかん,石川さん
愛媛,みかん,佐藤さん
愛媛,みかん,田中さん
愛媛,みかん,小林さん





これを以下のように加工したいです。

県名,品物名,購入者1,購入者2,購入者3,購入者4・・・・・購入者100
青森,りんご,西田さん,斉藤さん,山田さん
愛媛,みかん,石川さん,佐藤さん,田中さん,小林さん
愛媛,キウイ,島田さん




要は、品物名でグループ化し、購入者の値を横並びにして項目名は連番にしたいです。
(項目名の連番は最後に手作業でも問題なし)
エクセルの手作業でならできましたが、品物名が500を超える場合があり、
購入者の数も100近くになるため、毎週こういうことはできないため、
エクセルやアクセスでなるべく簡単にできたらいいと思います。
スマートな方法のアイデアがあったらご教授ください。

Aベストアンサー

こんにちは!
VBAになってしまいますが、一例です。
Sheet1のデータをSheet2に表示するようにしてみました。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim i As Long, endRow As Long, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1") '←「Sheet1」は実際のSheet名に!
Set wS2 = Worksheets("Sheet2") '←「Sheet2」も実際のSheet名に!
Application.ScreenUpdating = False
wS2.Cells.ClearContents
endRow = wS1.Cells(Rows.Count, "A").End(xlUp).Row
wS1.Range("A1").Resize(, 2).Copy wS2.Range("A1")
wS1.Range("A:A").Insert
With Range(wS1.Cells(1, "A"), wS1.Cells(endRow, "A"))
.Formula = "=B1&C1"
.Value = .Value
.AdvancedFilter Action:=xlFilterInPlace, unique:=True
End With
endRow = wS1.Cells(Rows.Count, "A").End(xlUp).Row
Range(wS1.Cells(2, "B"), wS1.Cells(endRow, "C")).Copy wS2.Cells(2, "A")
With wS1
.ShowAllData
.Range("A:A").Delete
End With
For i = 2 To wS2.Cells(Rows.Count, "A").End(xlUp).Row
With wS1.Range("A1").CurrentRegion
.AutoFilter field:=1, Criteria1:=wS2.Cells(i, "A")
.AutoFilter field:=2, Criteria1:=wS2.Cells(i, "B")
endRow = .Cells(Rows.Count, "A").End(xlUp).Row
Range(.Cells(2, "C"), .Cells(endRow, "C")).Copy
wS2.Activate
ActiveSheet.Cells(i, "C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True
End With
Next i
For i = 3 To wS2.UsedRange.Columns.Count
wS2.Cells(1, i) = wS1.Cells(1, "C") & i - 2
Next i
Application.ScreenUpdating = True
wS1.AutoFilterMode = False
End Sub 'この行まで

こんなんではどうでしょうか?m(_ _)m

こんにちは!
VBAになってしまいますが、一例です。
Sheet1のデータをSheet2に表示するようにしてみました。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim i As Long, endRow As Long, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1") '←「Sheet1」は実際のSheet名に!
Set wS2 = Worksheets("Sheet...続きを読む

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Q【excelマクロ】重複データをチェックしてその行を削除・表を集計して整頓するマクロ

MC28SP 会社で資材の在庫管理表を作成しているのですが、大変困っております。
マクロ初心者で技術不足なのでどうかご教授願います。
「資材受け入れシート」として、下の表があります。
   1   2   3  4
 受入日 品名  Lot  数量
  7/7   A  BNR32  10
  7/8   A  BNR32  5
  7/10   B  SW200  2
  7/7   B  AE860  4
  7/8   B  SW200  12
  7/9   C  GD300  10
  7/7   C  GD300  1
  7/7   C  DC200  7
これを2列目「品名」をキーとして「Lot」を確認し、同じ(つまり同じ物)であればその行を削除して、数量を加算して1行にまとめるマクロを作りたいのです。ポイントは(1)2列目「品名」の重複確認のみで行削除ではなく、3列目「Lot」も確認する必要があることと、(2)削除してからその「品名」がある行に削除した「数量」分加算しなくてはいけないことだと考えているのですが・・・。
  1   2   3  4
 受入日 品名  Lot  数量
  7/8   A  BNR32  15
  7/10   B  SW200  14
  7/7   B  AE860  4
  7/9   C  GD300  11
  7/7   C  DC200  7
「受入日」の所はできれば最終日になれば良いかなと思っています。
会社で期限を決められているのですが、手こずってしまい前へ進みません。説明が分かりづらいかもしれませんが、どうか宜しくお願い致します。

MC28SP 会社で資材の在庫管理表を作成しているのですが、大変困っております。
マクロ初心者で技術不足なのでどうかご教授願います。
「資材受け入れシート」として、下の表があります。
   1   2   3  4
 受入日 品名  Lot  数量
  7/7   A  BNR32  10
  7/8   A  BNR32  5
  7/10   B  SW200  2
  7/7   B  AE860  4
  7/8   B  SW200  12
  7/9   C  GD300  10
  7/7   C  GD300  1
  7/7   C  DC200  7
これを2列目「品名」をキーと...続きを読む

Aベストアンサー

ご参考までにという事で。。。
標準モジュールで実行してみてください。

Sub test()
  Dim strSql As String
  Dim cnXL As Object
  Dim rsXL As Object
  Const adOpenForwardOnly = 0
  
  
  Sheets("資材受け入れシート").Range("A1:D1").Copy
  Sheets("資材受け入れシート").Paste Destination:=Worksheets("Sheet2").Range("A1:D1")
  Application.CutCopyMode = False
  
  Set cnXL = CreateObject("ADODB.Connection")
  Set rsXL = CreateObject("ADODB.Recordset")

  With cnXL
    .Provider = "MSDASQL"
    .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
    "DBQ=" & ThisWorkbook.FullName & "; ReadOnly=True;"
    .Open
  End With

  strSql = "select max(受入日) as 日付,品名,Lot,sum(数量) as 合計" _
        & " from [資材受け入れシート$]" _
        & " group by 品名,Lot order by max(受入日),品名,Lot"
  
  Debug.Print strSql
  rsXL.Open strSql, cnXL, adOpenForwardOnly

  Worksheets("sheet2").Cells(2, 1).CopyFromRecordset rsXL
  Worksheets("sheet2").Columns("A:A").NumberFormatLocal = "m/d"
  
  rsXL.Close: Set rsXL = Nothing
  cnXL.Close: Set cnXL = Nothing
  MsgBox "Sheet2に出力しました"
End Sub

ご参考までにという事で。。。
標準モジュールで実行してみてください。

Sub test()
  Dim strSql As String
  Dim cnXL As Object
  Dim rsXL As Object
  Const adOpenForwardOnly = 0
  
  
  Sheets("資材受け入れシート").Range("A1:D1").Copy
  Sheets("資材受け入れシート").Paste Destination:=Worksheets("Sheet2").Range("A1:D1")
  Application.CutCopyMode = False
  
  Set cnXL = CreateObject("ADODB.Connection")
  Set rsXL = CreateObject("ADODB.Reco...続きを読む

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

QEXCEL 重複データの集計の仕方

下記の表のような、「管理コード」ごとの「数量」の集計をしたい場合は、どうしたらよいでしょうか?

Aベストアンサー

集計機能・数式・ピボットテーブル…参考書のお手本のように集計案が出てますね。
では私からも一つ。
統合機能です。

集計表を作りたい位置のセルを選択し、
データ→データツールグループ→統合
統合元範囲→元表の範囲を選択(列選択でもOK)→追加ボタン
統合の基準→□上端、□左端にチェックを入れる→OK

上の見出しはそのまま使われるので商品名の列が空白で出てきますが、管理コードごとに数量が集計されているはずです。
ちょっとマイナーな機能ですけどね。

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

QExcelで縦に入っているデータを横に並びかえたい

Win2000でExcel2000を使用しています。
A1から縦方向にデータが入っているのですが、それを
A1から横方向に並び替えたいのですが、なにかいい方法が
あれば教えてください。

今現在、セルを一つ一つコピーしているのですが、データ
の件数が多いので何か効率的な方法があれば、大変助かります

よろしくお願いいたします♪

Aベストアンサー

Excelにそういう機能があります.

まず,変換したい部分を選択して,メニューの「編集」→「コピー」
次に,広い部分(例えば別のシート)の一つのセルを選択し,
メニューの「編集」→「形式を選択して貼り付け」
出てきたダイアログの「行列を入れ替える」にチェックをつけて「OK」
これでOK.

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

Q重複データの集計マクロについて

例えば表1のように同じ品番のデータが別行に重複して入力されています。このデータを表2のように同じ品番は同じ行に、また重複している品名も1つにまとめて集計したいのですが、うまく行きません。どなたか教えていただけないでしょうか
表1
品番 品名1 品名2 品名3 品名4 品名5
50 15      32  45
50     15  52      32
20 33  87          67

表2
品番 品名1 品名2 品名3 品名4 品名5
50 15  32  45  52
20 33  87  67  

Aベストアンサー

意味が判らない点があるが以下でやって見ました。
数字は品番コードと解釈し、品名1 品名2 品名3 品名4 品名5とその下のコードとは関係ないものとした。
分解(test01前半)-ソート(test01の最後)-再組み立て(test02)の過程でやっている。
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
d = sh1.Range("A65536").End(xlUp).Row
' MsgBox d
k = 1
For i = 2 To d
For j = 2 To 5
If sh1.Cells(i, j) = "" Then
Else
sh2.Cells(k, "A") = sh1.Cells(i, "A")
sh2.Cells(k, "B") = sh1.Cells(i, j)
k = k + 1
End If
Next j
Next i
MsgBox k
sh2.Activate
sh2.Range(Cells(1, "A"), Cells(k - 1, "B")).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, _
key2:=Range("B1"), Order2:=xlAscending
End Sub
Sub test02()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet2")
Set sh2 = Worksheets("sheet3")
d = sh1.Range("A65536").End(xlUp).Row
' MsgBox d
k = 1
j = 2
m1 = sh1.Cells(1, "A")
sh2.Cells(k, "A") = sh1.Cells(1, "A")
sh2.Cells(k, j) = sh1.Cells(1, "B")
m2 = sh1.Cells(1, "B")
j = j + 1
For i = 2 To d
If sh1.Cells(i, "A") = m1 Then
If sh1.Cells(i, "B") = m2 Then
Else
sh2.Cells(k, j) = sh1.Cells(i, "B")
m2 = sh1.Cells(i, "B")
j = j + 1
End If
Else
k = k + 1
j = 2
sh2.Cells(k, "A") = sh1.Cells(i, "A")
sh2.Cells(k, j) = sh1.Cells(i, "B")
j = j + 1
m1 = sh1.Cells(i, "A")
m2 = sh1.Cells(i, "B")
End If
Next i
End Sub

意味が判らない点があるが以下でやって見ました。
数字は品番コードと解釈し、品名1 品名2 品名3 品名4 品名5とその下のコードとは関係ないものとした。
分解(test01前半)-ソート(test01の最後)-再組み立て(test02)の過程でやっている。
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
d = sh1.Range("A65536").End(xlUp).Row
' MsgBox d
k = 1
For i = 2 To d
For j = 2 To 5
If sh1.Cells(i, j) = "" Then
E...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報