エクセルで,同じ列にある複数の重複する名前を抽出する方法はありますか?
たとえばA1~A100に氏名が入力されている中に鈴木一郎,佐々木次郎,高橋三郎など重複して氏名が入力されているとします。どの氏名が重複入力されているか不明なので,オートフィルターで抽出するのはチョット不便です。
この場合,鈴木一郎,鈴木一郎,佐々木次郎,佐々木次郎,高橋三郎,高橋三郎と言うように上から順番に重複している氏名を抽出して表示する関数はありますか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

NO1ですが、NO2さんに対する質問の回答がないのでかわりに・・・



=IF(COUNTIF(B$1:B$100,$B1)>1,"重複","1")

ではなく

=IF(COUNTIF(B$1:B$100,$B1)>1,"重複","")

にすれば「1」という表示は無くなりますよ!
    • good
    • 3
この回答へのお礼

思っていたとおりの作業ができました。感謝いたします。

お礼日時:2010/06/03 21:46

重複している氏名を上から順序よく並べるのでしたら作業列を作って対応するのが判りやすいでしょう。


例えばB1セルに次の式を入力します。

=IF(AND(COUNTIF(A$1:A1,A1)=1,COUNTIF(A:A,A1)>1),ROW(),"")

答えの列はC列としてC1セルには次の式を入力します。

=IF(COUNT(B$1:B$100)<ROW(A1),"",INDEX(A$1:A$100,MATCH(SMALL(B$1:B$100,ROW(A1)),B$1:B$100,0)))

最後にB1セルとC1セルを選択してそれらの式を下方にオートフィルドラッグします。
    • good
    • 0

A列の前に列を挿入して


A1に=IF(COUNTIF(B$1:B$100,$B1)>1,"重複","1")
下方向にコピー。
A列の名前がB列に変わるのでこんな式になります。

で重複してる名前の前に「重複」と出るので
オートフィルタで重複を選択すればオーケー。

こんな感じでどうでしょう?

この回答への補足

回答ありがとうございます。早速試してみたのですが,A列に「1」と出てしまうのですが,やり方がまずいですか?A列に名前がはじめ入っていたのに,列を挿入したので,名前はB列に移りますよね?

補足日時:2010/04/14 19:14
    • good
    • 2

残念ながら、そういった関数はありません。



EXCELのバージョンはいくつですか?
EXCEL2007の新機能では「条件付き書式」の中に「重複する値」というのがあり、重複するデータを任意の書式に変換して強調表示できます。

この回答への補足

回答ありがとうございます。バージョンは2003です。

補足日時:2010/04/14 19:00
    • good
    • 1

このQ&Aに関連する人気のQ&A

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

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

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

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

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

Aベストアンサー

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

Qエクセルの7桁の中から3,5,7桁目だけ抽出したい

エクセルの7桁の中から3,5,7桁目だけ抽出したい

お世話になります。

表題のとおりなのですが・・・
文字列にしてmidで抽出する方法だと飛び飛びには選んでくれないのでどうしたらいよいでしょうか??

結構作業が多そうなので式があればと探しております。
どうぞよろしくお願いします。。

Aベストアンサー

例えば次のような式で

=MID(A1,3,1)&MID(A1,5,1)&MID(A1,7,1)

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=SUM(ROUND(A1,0),ROUND(A3,0),ROUND(A10,0))をもっと簡単に

エクセル200です。
A1、A3、A10の各セルにある数値を四捨五入してから合計するのに
=SUM(ROUND(A1,0),ROUND(A3,0),ROUND(A10,0))
でできるのはもちろん存じておりますが、もっと簡単に書く方法はないでしょうか?

A2、A4からA9までのセルが空白であれば
=SUMPRODUCT(ROUND(A1:A10,0)*1)
A2、A4からA9までのセルが文字列であれば
{=SUM(IF(ISNUMBER(A1:A10),ROUND(A1:A10,0),""))}(配列数式)
でできるのですが、数値であるために使えません。

上記のA1、A3、A10はあくまで一例で、実際は同一列ではありますがもっとセル数が多いのです。そのため簡単に書ける方法を探しています。
よい方法があればご教示くださいませ。

Aベストアンサー

雨の鹿児島から、おはようさんです。

これが簡単かどうかは別として、、、

=SUMPRODUCT((ROW(A1:A10)={1,3,10})*ROUND(A1:A10,0))
 
以上です。
 

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セルまでオートフィルで...続きを読む

Qリストのデータを重複なしでランダムに抽出する

シート1に下記のように14種類の名前リストがあります

    A
1   A
2   B
3   C
4   D
5   E
6   F
7   G
8   H
9   I
10  J 
11  K
12  L
13  M
14  N

上記の名前を下記のように別シートの数列おきの列(行は同一)に重複なしに行毎にランダムに抽出する事が関数で出来るでしょうか?(エクセルは2010です)
ちなみに下記は一列おきのセルに抽出した例です

  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA
1 D   L   K    I    A   M   N    B   H   J    C    F    E   G
2 K   J   M   H    I   G   F    E   D    A    B   N   C    L
3 E   J   A    L   B   M    K   C   N    G    F   D    H   I

どなたか教えていただける方がおりましたらよろしくお願いします。

という質問をさせていただき、mike gさんに下記のような回答をいただきました


1.Sheet1 の例えばセル C1 に式 =RAND() を入力して、此れを右に2列(注1参照)ドラッグ&ペースト
2.範囲 C1:E1 を下方にズズーッと(14行目まで)ドラッグ&ペースト
以下は別シート(Sheet2)における操作です。
3.セル A1 に次式を入力して、此れを右方にズズーッと(セル AA1 まで)ドラッグ&ペースト(注2参照)
  =IF(MOD(COLUMN(),2)=1,INDEX(Sheet1!$A$1:$A$14,MATCH(SMALL(OFFSET(Sheet1!$C$1,,ROW()-1,14,),CEILING(COLUMN()/2,1)),OFFSET(Sheet1!$C$1,,ROW()-1,14,),0)),"")
4.1行目全体を下方にズズーッと(3行目まで)ドラッグ&ペースト

注1:「右に2列」は別シートの行数が3行の場合で、4行(5行)の場合は「右に3列(4列)」に読み替える。
注2:式中の 2 は「一列おき」の場合で、二列(三列)おきの場合は 2 を 3(4) に書き替える。


これで完璧に出来たのですが
実際にはSheet2のセルH6から15列おきに抽出したいのです。
15列おきは出来たのですが、セルH6から抽出を始めるにはどの部分を変更すれば良いのでしょうか?
どなたか教えて頂ける方がおりましたらよろしくお願いします。

シート1に下記のように14種類の名前リストがあります

    A
1   A
2   B
3   C
4   D
5   E
6   F
7   G
8   H
9   I
10  J 
11  K
12  L
13  M
14  N

上記の名前を下記のように別シートの数列おきの列(行は同一)に重複なしに行毎にランダムに抽出する事が関数で出来るでしょうか?(エクセルは2010です)
ちなみに下記は一列おきのセルに抽出した例です

  A B C D E F G H I J K L M N O P Q R S T...続きを読む

Aベストアンサー

H6: =IF(MOD(COLUMN(A1),16)=1,INDEX(Sheet1!$A$1:$A$14,MATCH(SMALL(OFFSET(Sheet1!$C$1,,ROW(A1)-1,14,),CEILING(COLUMN(A1)/16,1)),OFFSET(Sheet1!$C$1,,ROW(A1)-1,14,),0)),"")

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関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

Q2つの条件で重複しないデータを抽出

シート1
1|品名 種類 名前 データ
2|A 1 あ 21
3|B 2 い 11
4|F 2 あ 51
5|A 1 い 21 
6|B 2 あ 64
7|A 1 あ 84


シート2
1|品名 A
2|種類 1
3|
4|名前
5|あ
6|い


シート1のデータから、シート2の2つの条件(A1:B2)で、重複しない名前を表示する方法を教えて下さい。
上記のデータでいうと、品名Aであり種類が1の名前を重複なしで特定の位置(A5)から詰めて縦に表示するようにして、
シート1のデータ、シート2の条件を変更したらA5からの名前が自動更新されるようにしたいです。

以下できたら追加したいこと
1.表示する名前の順番が、シート2の条件で集計したデータ値が多い名前順
2.シート2のB2の種類に0を入れると種類の条件無しで表示


実際はA5からの名前の行は数行を結合したもので右側には複数の行でデータ項目別になって、名前が入力された時に日毎のデータを自動表示しています。
全部で名前の種類は30以上ありますが、品名の条件をつければ名前は10種類以下になります。
グラフは名前別で表示しており、不要な名前が増えると表示しずらいので、必要な名前だけのデータを表示するようにしたいです。

どうかよろしくお願いします。

シート1
1|品名 種類 名前 データ
2|A 1 あ 21
3|B 2 い 11
4|F 2 あ 51
5|A 1 い 21 
6|B 2 あ 64
7|A 1 あ 84


シート2
1|品名 A
2|種類 1
3|
4|名前
5|あ
6|い


シート1のデータから、シート2の2つの条件(A1:B2)で、重複しない名前を表示する方法を教えて下さい。
上記のデータでいうと、品名Aであり種類が1の名前を重複なしで特定の位置(A5)から詰めて縦に表示するようにして、
シート1のデータ、シート2の条件を変更したらA5からの...続きを読む

Aベストアンサー

No.1です!
補足を読ませていただきました。
データは10000行位あり、今後も増える予定だというコトですので、
VBAでの方法はどうでしょうか?

※ 実は前回、
>1.表示する名前の順番が、シート2の条件で集計したデータ値が多い名前順
>2.シート2のB2の種類に0を入れると種類の条件無しで表示
の件を無視していましたので、

Sheet1・Sheet2の配置はお示し通りになっていて、Sheet3を作業用に使用しています。
(Sheet3は現在なにも使用していないという前提です。)

画面左下にあるSheet2のSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてSheet2のB1・B2セルのデータを変更してみてください。


Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim i, j As Long
Dim ws1, ws3 As Worksheet
Set ws1 = Worksheets(1)
Set ws3 = Worksheets(3)
Application.ScreenUpdating = False
If Target.Row <= 2 And Target.Column = 2 Then
If WorksheetFunction.CountBlank(Range("B1:B2")) Then Exit Sub
i = Cells(Rows.Count, 1).End(xlUp).Row
If i > 4 Then
Range(Cells(5, 1), Cells(i, 1)).ClearContents
End If
ws1.Columns("A:D").Copy Destination:=ws3.Cells(1, 1)
ws3.Columns("A:D").Sort key1:=ws3.Cells(1, 4), order1:=xlDescending
ws3.Columns(1).Insert
If Cells(2, 2) = 0 Then
For i = 2 To ws3.Cells(Rows.Count, 2).End(xlUp).Row
If ws3.Cells(i, 2) = Cells(1, 2) And _
WorksheetFunction.CountIf(ws3.Columns(1), ws3.Cells(i, 4)) = 0 Then
ws3.Cells(i, 1) = ws3.Cells(i, 4)
End If
Next i
For j = 2 To ws3.Cells(Rows.Count, 1).End(xlUp).Row
If ws3.Cells(j, 1) <> "" Then
Cells(Rows.Count, 1).End(xlUp).Offset(1) = ws3.Cells(j, 1)
End If
Next j
Else
For i = 2 To ws3.Cells(Rows.Count, 3).End(xlUp).Row
If ws3.Cells(i, 2) = Cells(1, 2) And ws3.Cells(i, 3) = Cells(2, 2) And _
WorksheetFunction.CountIf(ws3.Columns(1), ws3.Cells(i, 4)) = 0 Then
ws3.Cells(i, 1) = ws3.Cells(i, 4)
End If
Next i
For j = 2 To ws3.Cells(Rows.Count, 1).End(xlUp).Row
If ws3.Cells(j, 1) <> "" Then
Cells(Rows.Count, 1).End(xlUp).Offset(1) = ws3.Cells(j, 1)
End If
Next j
End If
ws3.Cells.ClearContents
Application.ScreenUpdating = True
End If
End Sub 'この行まで

※ B2セルが「0」の場合は「種類」は無視して、「品名」ごとの最大データの人を表示!
※ B2セルが「0」以外の場合は「品名」・「種類」が一致する最大データの人を表示!
という考え方にしています。

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

No.1です!
補足を読ませていただきました。
データは10000行位あり、今後も増える予定だというコトですので、
VBAでの方法はどうでしょうか?

※ 実は前回、
>1.表示する名前の順番が、シート2の条件で集計したデータ値が多い名前順
>2.シート2のB2の種類に0を入れると種類の条件無しで表示
の件を無視していましたので、

Sheet1・Sheet2の配置はお示し通りになっていて、Sheet3を作業用に使用しています。
(Sheet3は現在なにも使用していないという前提です。)

画面左下にあるSheet2のSheet見出し上で...続きを読む

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エクセルで連続した重複セルを抽出する方法

お世話になります、ネット上で検索しましたが、
求めている答えを見つけることができなかったので、コチラで質問させていただきます。

エクセル表の制作についこのようなことが可能かどうかわからないのですが、
ご存知の方がいらっしゃいましたらご教授お願いいたします。



以下のようなエクセル表があるとします。

田中  佐藤  鈴木  木山 
佐藤  平原  鈴木  木山
鈴木  平原  田中  木山 
木山  平原  田中  佐藤
       ・
       ・
       ・

列こそ違いますが、行で言うと「木山」は4回連続で出現しています。
この場合、4回連続で入力された「木山」を抽出して背景の色を変えるとか
即座にそれを認識できる方法はありませんか?

要するに、4行連続で入力することをエラーとしたいのです。

当方、エクセルに関してそれほど知識等ありませんので、できるだけわかりやすく
ご教授いただけたらありがたいです。よろしくお願いいたします。

Aベストアンサー

こんばんは!
入力規則でエラー表示も可能だと思いますが・・・

セル色の方をご希望のようなので、条件付書式での一例です。
↓の画像のように1行目からデータがあるとします。
当方使用のExcel2003の場合ですが、

4行目以降を範囲指定 → 書式 → 条件付書式 → 「数式が」を選択 → 数式欄に
=COUTIF($A1:$D4,A4)>=4
と入力 → 書式 → パターンから好みの色(画像では赤)を選択しOK
これでA~D列内に4行連続出現データに色がつくと思います。

Excel2007の場合は(手元にないのではっきり覚えていませんが)
条件付書式 → 新しいルール → 「数式を使用して・・・」といった感じだったと思います。
数式欄には同じ数式を入れます。

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


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

人気Q&Aランキング