[[20170515094110]] 『数字の組合せの検索』(ぽっぽ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『数字の組合せの検索』(ぽっぽ)

 エクセルで同じ数字を検出する事とはできると思いますが、
 使用されている数字が同じときの検出は可能でしょうか?
 例えば『1975』で同じ数字が使用されている、『9157』『1759』・・・などを検出できる方法がありましたら教えてください。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


1文字ずつ、FIND関数で調べれば良いかと。4文字全て含まれた場合、一致と判定すれば良いでしょう。
(???) 2017/05/15(月) 09:50

あ、同じ数字が複数回一致しては駄目なので、文字数の一致も確認しましょう。
(???) 2017/05/15(月) 09:52

 たとえば 判定する数値が A1 にあるとして =SUM(ISERROR(FIND({1,9,7,5},A1))*1)
 こんな式を書いておくと 1975 の順序は問わず、9157 や 1759 の場合、結果が 0 になりますので、
 それで判定可能ですね。(結果が 0 でなかったら、ことなる数字が混ざっているということになります)

 必要なら 文字数チェックもいれてください。

(β) 2017/05/15(月) 10:03


Sub main()
    Dim ip As String, data1 As String, data2 As String, i As Long, c As Range
    ip = InputBox("検出数字を入力してください")
    If MsgBox(ip & "でよろしいですか?", 36) = 7 Then Exit Sub
    data1 = "000000000"
    For i = 1 To Len(ip)
        If Not IsNumeric(ip) Then Exit Sub
        Mid(data1, Mid(ip, i, 1) + 1, 1) = Val(Mid(data1, Mid(ip, i, 1) + 1, 1)) + 1
    Next i
    For Each c In Cells.SpecialCells(xlCellTypeConstants)
        If IsNumeric(c.Value) Then
            data2 = "000000000"
                For i = 1 To Len(c)
                Mid(data2, Mid(c.Value, i, 1) + 1, 1) = Val(Mid(data2, Mid(c.Value, i, 1) + 1, 1)) + 1
                Next i
            If data1 = data2 Then c.Select: MsgBox c.Value & "が一致"
        End If
    Next c
End Sub
(mm) 2017/05/15(月) 12:09

ありがとうございます。

早速試してみたいと思います。

(ぽっぽ) 2017/05/15(月) 14:51


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.