[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『2つのセル内の文字列を比較し、相違場所を抽出する』(BIT)
質問させていただき、さっそくご返答頂きました。
また、新たな質問なのですが、例えば、
A1=×○○× B1=○○○○
というようなデータがあったとします。それぞれセル内の文字数は同じで、文字の種類は2種類です。
一つのセルに100近い文字が入力されています。
双方のセルを比較し、相違のある文字の場所(上記の場合は1、4列目)を抽出することはできますでしょうか。
先程の質問で頂いた回答(区切り位置)を使い、文字ごとにセルを区切った上で、
IF関数を使い、TRUEとFALSEでわけようかと思ったのですが、データの量が多く、
効率のよい方法はないかと思い、本日2度目ではありますが質問させて頂きました。
ご回答頂ければと思います。宜しくお願い致します。
回答ではありません。 もしかして、スレッド内容を消していませんか? (MARBIN)
[seiya]さんの書き込みでした。 復活しておきます。 (みやほりん)(-_∂)b 2005/12/28 11:50
ユーザー定義関数です。
Function bit(val1, val2) As String Dim i As Long, x As Long, i As Long x = Application.Min(Len(val1), Len(val2)) y = Application.Max(Len(val1), Len(val2)) For i = 1 To x If Mid$(val1, i, 1) <> Mid$(val2, i, 1) Then _ bit = bit & i & ", " Next If x <> y Then For i = x + 1 To y bit = bit & i & ", " Next End If If Len(bit) = 0 Then bit = "Perfect!" Else bit = Left(bit, Len(bit) - 2) End If End Function (seiya)
解決したのかしら? >何かプログラムのようなものが並んでいたので、削除してしまった とのことなので、ちょっと気になって^^;
関数を使った方法で考えてみました。 結果だけ出るようなものではありませんが… A2に =MID(A$1,ROW(A1),1) B2に =IF(A2=MID(B$1,ROW(B1),1),"",MID(B$1,ROW(B1),1)) C2に =ROW(A1) として、A2からC100まで範囲選択して、そのままメニューバーから 編集>フィル>下方向へコピー を選択します。 B列を選択して、データ>フィルタ>オートフィルタを選択します。 B1に出現したプルダウンメニューから 空白以外のセル を選択しますと、相違部分がわかりやすくなるかな、と思いますがどうでしょう? (かなれっと)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.