エクセルで重複する文字の行番号を抜き出す方法

このQ&Aのポイント
  • エクセルで重複する文字の行番号を抜き出す方法を教えてください。
  • 関数のみで行番号を抽出する方法を教えてください。
  • 重複する文字が入力された「先頭の行」と「最後の行」の行番号を抽出する方法を教えてください。
回答を見る
  • ベストアンサー

エクセル / 重複する文字の行番号を抜き出す。

お世話になります。 XP/2003 使用です。 エクセルで下記のようなケースの行番号を抜き出したいです。 できれば、関数のみがありがたいのですが、 マクロでもOKです。 ----------- 抽出したい行番号  重複する文字が入力された 「先頭の行」 と 「最後の行」 の行番号 ----------- 例 同じ列に、重複する単語が入力されています。 重複する単語は、必ず上下に並んでいますが、 1単語のみ場合もあります。 1  AAA 2  AAA 3  AAA 4  AAA 5  BBB 6  BBB 7  CCC 8  CCC 9  CCC 10 DDD 上記の場合の抽出した行番号 単語 → 先頭の行/最後の行 AAA → 1/4 BBB → 5/6 CCC → 7/9 DDD → 10/10 行番号は、B列、C列などに抽出できれば良いです。 何卒よろしくお願いします。

  • ken123
  • お礼率73% (299/409)

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

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

行番号を抜き出したいご相談という事は、単語としてAAAやBBBがあるという事自体は既知で、既に並べてあるという事ですね。 C1に「単語」 C2に先頭のAAA、以下BBB,CCC… D1に「先頭行」 D2に =MATCH(C2,A:A,0) 以下コピー E1に「最終行」 D2に =D2+COUNTIF(A:A,C2)-1 以下コピー 以上です。 #参考 単語としてのAAAやBBBの並べ方 一番簡単な方法: データメニューのフィルタから「フィルタオプションの設定」を使い、「重複を無視する」を使って抽出する 何でもカンデモ関数じゃなきゃヤな場合: =IF(ROW(A1)>SUMPRODUCT(1/COUNTIF($A$1:$A$10,$A$1:$A$10)),"",INDEX(A:A,SMALL(IF(MATCH($A$1:$A$10,A:A,0)=ROW($A$1:$A$10),ROW($A$1:$A$10)),ROW(A1)))) と記入し、必ずコントロールキーとシフトキーを押しながらEnterで入力 以下コピー

ken123
質問者

お礼

keithinさま 早速のご回答ありがとうございます! たびたび申し訳ございません^^ 完璧でした(^^♪ おかげさまで、少しずつMATCH関数の使い方、組み合わせ方を理解できてきたような気がします^^ 今後ともよろしくお願いします。

その他の回答 (1)

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

どのような単語が並んでいるかも含めて次のように作業列を設けて対応してはどうでしょう。 お示しのデータがA2セルから下方に並んでいるとします。 B2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,ROUNDDOWN(MAX(B$1:B1),-3)+1000+ROW(),IF(COUNTIF(A$2:A2,A2)=COUNTIF(A:A,A2),ROUNDDOWN(INDEX(B$1:B1,MATCH(A2,A$1:A1,0)),-3)+ROW(),""))) そこでお求めの表ですが例えばE2セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)*1000>MAX($B:$B),"",INDEX($A:$A,MATCH((ROW(A1)+1)*1000,$B:$B,1))) F2セルには次の式を入力してG2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(E2="","",IF(ISERROR(MOD(SMALL($B:$B,ROW(A1)*2-1+COLUMN(A1)-1),1000)),$F2,MOD(SMALL($B:$B,ROW(A1)*2-1+COLUMN(A1)-1),1000)))

関連するQ&A

  • EXCELで行の先頭データが同じ行の削除方法について

    EXCELで次のようなことをしたいのですがどうしたら簡単にできるでしょうか?  AAA   AAA  AAA  AAA  AAA  BBB  BBB  BBB  CCC  DDD  DDD  DDD  DDD 上ようのなデータで重複している部分を削除し、  AAA  BBB  CCC  DDD としたいのですが。 今は一行々々で確認しながら削除してます。3000行程あり困ってます。 どうしたら簡単にできるでしょうか?  

  • エクセルの行の中で値が重複しているものを抽出したいのですが。

    基本的なことなのかもしれませんが、とても困ってまして、 教えていただけると幸いです。 以下のような表がある場合に、 3行目と4行目のように複数列で重複している行を 抽出したいのですが、どうすればよいでしょうか。 ※配列は変わらないので、横の行が全く同じもの だけを識別する必要がありまして。 A列 | B列 | C列 ---------------------- aaa |あああ |アアア ---------------------- bbb |いいい |イイイ ---------------------- ccc |ううう |ウウウ ---------------------- ccc |ううう |ウウウ ---------------------- ddd |えええ エエエ ---------------------- eee |おおお オオオ 教えていただけると助かります。 何卒、よろしくお願いいたします。

  • 【少し急いでます】エクセルについて教えてください!

    Excel2000を使っています。 A列に重複するデータがあり、B列に別データがあります(20000行強) 例)     A  B 1  001 aaa 2   001 bbb 3   001 ccc 4   002 aa 5  002 bb 6  003 aaa 7  003 bbb 8  004 ddd 9   004 eee 10  005 aa 11  006 bbb A列で重複する001は3行あり、重複しているデータは1行にまとめてB列のaaa、bbb、cccをつなげたいです。(わかりづらくてすみません) 例)     A      B 1  001  aaa・bbb・ccc 2  002   aa・bb 3  003  aaa・bbb というようにまとめたいです。 どのような方法がありますでしょうか? よろしくお願い致します。

  • 重複 があれば削除して1つに

    http://oshiete1.goo.ne.jp/qa4510771.html の族編です。 エクセルの1列の縦長いデータを抽出して 1行の横長いカンマ区切りのテキストにしたいのですが、 エクセルの縦1列をコピペでワードにテキストで貼り付け そこから改行を置き換え削除で横並び1列になったのですが 重複する文字が複数あったので、重複分を削除して1つだけに残したいのです。 エクセルデータは変更してはいけないので、コピーしかできません。別のエクセルにならコピーしてもかまいません。 手作業では大変な作業ですので、簡単で単純な方法を教えて下さい。 ********************************** aaa  ← エクセルの縦列のデータ bbb  ← ccc aaa ddd bbb ↓ aaa,bbb,ccc,ddd こんな風に重複分だけ削除して1行カンマテキストにしたいのです。 <(_ _)>

  • 文字変換で,を改行されないようにしたい

    下記のスクリプトでファイルから読み込んだ行毎の文字列<>を'=>'に変換後、行の先頭に'を付け足し行の最後に',を付け加えた場合、変な風に改行されてしまいます。 $ cat list1.txt 01<>ああああ 01_01<>あAAA 01_02<>あBBB 01_03<>あCCC 01_04<>あDDD 02<>いいいい 02_01<>いAAA 02_02<>いBBB 02_03<>いCCC 02_04<>いDDD open(IN, "<list1.txt"); @datas = <IN>; close(IN); open(OUT, ">date.txt"); foreach (@datas) { ($a, $b) = split(/<>/, $_); print OUT "'$a'=>'$b',"; } close(OUT); 実行結果 $ cat date.txt '01'=>'ああああ ','01_01'=>'あAAA ','01_02'=>'あBBB ','01_03'=>'あCCC ','01_04'=>'あDDD ','02'=>'いいいい ','02_01'=>'いAAA ','02_02'=>'いBBB ','02_03'=>'いCCC ','02_04'=>'いDDD ', これを下記のように整形するにはスクリプトのどこを直せばよいのでしょうか。 '01'=>'ああああ', '01_01'=>'あAAA', '01_02'=>'あBBB', '01_03'=>'あCCC', '01_04'=>'あDDD', '02'=>'いいいい', '02_01'=>'いAAA', '02_02'=>'いBBB', '02_03'=>'いCCC', '02_04'=>'いDDD', どなたかご教授お願い致します。(上記のスクリプト以外の方法で スマートなやり方などありましたらあわせてご教授頂けますと助かります。)

    • ベストアンサー
    • Perl
  • SQLについて

    aaa bbb ccc ddd eee ggg hhh ---------------------------------------------- 111 111 111 111 111 111 111 112 112 112 112 112 112 111 112 113 113 113 113 113 111 114 114 114 114 114 114 111 114 114 114 114 114 114 112 114 115 115 114 114 115 111 114 115 115 114 114 115 112 116 116 116 116 116 116 111 116 116 116 116 116 116 112 116 116 116 116 116 117 111 116 116 116 116 116 117 112 118 118 118 118 118 118 118 上記のようなデータより、SQLのSELECTを使用して、以下のように抽出したいです。 抽出条件は以下が全て満たしているものとなります。 ・aaa,ccc,ddd,eee,gggが重複、hhhが小さいもの ・bbbが異なるもの aaa bbb ccc ddd eee ggg hhh ---------------------------------------------- 112 112 112 112 112 112 111 ・・・(1) 112 113 113 113 113 113 111 ・・・(1) 114 114 114 114 114 114 111 ・・・(2) 114 115 114 114 114 115 111 ・・・(2) (1)はaaa,ccc,ddd,eee,gggが重複、bbbが異なるため抽出対象 (2)はaaa,ccc,ddd,eee,gggが重複、bbbが異なるため抽出対象  また、hhhが小さいもの 以上、よろしくお願いします。

  • エクセルの文字処理

    以前に同じ様な質問があったかも知れませんが、探しきれなかったので教えてください。 A1~A4の4つのセルに以下のスペースが入った文字列が入っていた場合 A1|AAA A2|AAA BBB A3|AAA BBB CCC A4|AAA BBB CCC DDD    A   B   C   D  1|    AAA 2|AAA BBB 3|AAA BBB CCC 4|AAA BBB CCC DDD という具合にしたいのです。 条件は  ・セル内にスペースで区切られない文字列があった場合には、B列に入れる  ・それ以外はスペースで区切って、A列B列C列D列に入れる  ・文字数は3文字固定ではなく全角半角が混在 以上です。すいません宜しく願いします。

  • EXCELにて重複した項目を探す方法について

    すみません。 EXCELについて教えて頂きたいのですが..... 【例】     A   1 AAA 2 BBB 3 CCC 4 DDD 5 AAA と入力した場合 A行にて【A1】【A5】が 同内容にて重複しますが この場合 [AAA]にて検索する以外 重複を見つける方法が無いのでしょうか? (つまり重複そのものを見つける機能です。) よろしくお願い致します。

  • EXCELで複数行の検索

    初心者です。 Aファイルのaaa、bbbなどをキーに Bファイルを検索してできるだけ簡単にマクロ等使わずに 下記のような抽出をする方法があれば教えてください。 よろしくお願いします。 Aファイル aaa bbb ccc Bファイル(例えば「ddd」と「あ」は別セルです) ddd あ eee い aaa う fff え bbb お ggg か ccc き 結果 Aファイル aaa う bbb お ccc き

  • エクセルマクロ 特定の文字列を含む行を削除

    エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。

専門家に質問してみよう