EXCEL:文字列操作関数の使用方法について



◇-?EXCEL:文字列操作関数の使用方法について Windows2000のパソコントラブル解決事例-山田(初)-10/14-13:58(59)-No.299498
 ┣?!Re:EXCEL:文字列操作関数の使用...-スーちゃん-10/14-14:19(58)-No.299500
 ┣?!Re:EXCEL:文字列操作関数の使用...-Raf-10/14-14:48(58)-No.299512
 ┗?【解決】Re:EXCEL:文字列操作関数...-山田-10/14-17:03(56)-No.299545
  ┗?【解決】!Re:EXCEL:文字列操作関...-白茶-10/14-17:15(55)-No.299549

▲このページのトップに戻る
299498EXCEL:文字列操作関数の使用方法について Windows2000のパソコントラブル解決事例山田(初) URL2005/10/14-13:58

メーカー名: レノボ(lenovo) 元アイビーエム(IBM)
OS名:WindowsXp
パソコン名:ThinkPad
ハード関連: Excel関数
ソフト関連:ソフトの詳細を記入
インターネット全般:その他メーラー
使用回線:その他回線 わかりません。
--
セルA1〜A2000位までのデータの中から、重複する内容を削除したいのですが、
できません。
簡単な関数で教えて下さい。

例題として、

A1 あいうえお
A2 かきくけこ
A3 さしすせそあいうえお
A4 あいうえお

とあれば、A4のみを削除し、A3に混入している「あいうえお」は残したいです。



▲このページのトップに戻る
299500Re:EXCEL:文字列操作関数の使用方法について Windows2000のパソコントラブル解決事例スーちゃん 2005/10/14-14:19

記事番号299498へのコメント
例えばB列に
B1 IF(A1="","",COUNTIF($A1:$A2000,A1))
B2 IF(A1="","",COUNTIF($A1:$A2000,A2))
B3 IF(A1="","",COUNTIF($A1:$A2000,A3))
B4 IF(A1="","",COUNTIF($A1:$A2000,A4))

の様に入れれば、実際の表示は以下の様になるので、重複している行がわかると思います。

B1 2
B2 1
B3 1
B4 2

1なら重複なし、2以上なら1箇所以上の重複があるということです。

C列に以下の様に入れれば、重複行に表示されるので見た目にわかりやすいのでは。

C1 IF(A1="","",if(B1>1,"重複"))
C2 IF(A2="","",if(B2>1,"重複"))
C3 IF(A3="","",if(B3>1,"重複"))
C4 IF(A4="","",if(B4>1,"重複"))

削除は手作業に頼らざるを得ませんが。

▲このページのトップに戻る
299512Re:EXCEL:文字列操作関数の使用方法について Windows2000のパソコントラブル解決事例Raf 2005/10/14-14:48

記事番号299498へのコメント
山田(初)さんは No.299498「EXCEL:文字列操作関数の使用方法について Windows2000のパソコントラブル解決事例」で書きました。

こんにちは。関数ではありませんが、フィルタ機能は如何ですか?

・重複するデータを非表示にするには
 http://support.microsoft.com/kb/882123/JA/

抽出結果を別シートに貼り付ければ、削除が済んだ状態になっています。
抽出結果をデータとして扱う訳でなければ、そのままでも良いでしょう。

▲このページのトップに戻る
299545Re:EXCEL:文字列操作関数の使用方法について Windows2000のパソコントラブル解決事例山田 2005/10/14-17:03

記事番号299498へのコメント
解決しました。ありがとうございました。山田

▲このページのトップに戻る
299549Re:EXCEL:文字列操作関数の使用方法について Windows2000のパソコントラブル解決事例白茶 2005/10/14-17:15

記事番号299545へのコメント
山田さんは No.299545「Re:EXCEL:文字列操作関数の使用方法について Windows2000のパソコントラブル解決事例」で書きました。

あ、遅かったか・・・

こんにちは。

既に解決済みですが、
「関数で」というタイトルに反応して
関数の抽出式をご紹介しますね。
また一度試してみて下さい。


今回は2000行とデータ数が多いので、
作業列を使った方が処理速度が速いです。

C列を作業列として、
C1=IF(COUNTIF($A$1:A1,A1)=1,ROW())
C1をデータ下端までフィルダウン。

B1=INDEX(A:A,SMALL(C:C,ROW()))
でB1をエラー値「#NUM!」が返ってくるまでフィルダウン。

B列全体をコピーして「値」だけ貼り付け直せば、
A列とC列は不要になります。


作業列を使わない方法もありますが、
B1=INDEX(A:A,SMALL(IF(COUNTIF(OFFSET($A$1,,,ROW($A$1:$A$2000)),$A$1:$A$2000)=1,ROW($A$1:$A$2000)),ROW()))
を配列数式(確定時に「Ctrl」「Shift」「Enter」同時押し)にして、
B1をエラー値「#NUM!」が返ってくるまでフィルダウン。

データが多いとシート再計算が重くなります。
まあ、こちらは「マメ知識」としてご参考までに・・・。


A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言
初めて2007/11/10/(土) 13:56:42MSIE6/WinXP