[[20161130102335]] 『整数の中に同じ数字が含まれるセルを判定』(ケン) ページの最後に飛ぶ

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

 

『整数の中に同じ数字が含まれるセルを判定』(ケン)

下記のようにA1〜A10セルにランダムで整数があります。
同じセルに同じ数字を2個以上含むものはB1セルに"〇"
そうでないセルには"×"を出力したいのですが

 A列  B列

2233  〇
1234  ×
0010  〇
5555  〇
5681  ×

 ・
 ・
 ・

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


 =IF(OR(MID(A1,ROW($1:$3),1)=MID(A1,ROW($2:$4),1)),"○","×")
 ではどうか?
(ねむねむ) 2016/11/30(水) 10:41

関数は苦手ですが、
こういう事かなぁ。。。

Function chkNumber(s As String) As String

    Dim i As Long
    Dim j As Long
    Dim ss As String

    j = Len(s)
    chkNumber = "×"
    For i = 1 To j
        ss = Mid(s, i, 1)
        If InStr(i + 1, s, ss) Then
            chkNumber = "○"
            Exit Function
        End If
    Next
End Function
(まっつわん) 2016/11/30(水) 10:48

 ああ、
 =IF(OR(MID(A1,{1,2,3},1)=MID(A1,{2,3,4},1)),"○","×") 
 でもかまわないか。

 ROW($1:$3)と{1,2,3}、ROW($2:$4)と{2,3,4}が同じ値となる。

(ねむねむ) 2016/11/30(水) 14:54


 解決済みかも知れませんが。

 ねむねむさんの案では、1123や1223のように同じ数字が続いている場合はOKでしたが、
 1231や1232のような場合は×になるようなのですが・・・。(間違ってたらすみません)

 別案です。
 一文字ずつ抜き出して、それが残りの文字にあるか否かを調べる方法です。
 =IF(IFERROR(FIND(LEFT(A1,1),RIGHT(A1,3)),IFERROR(FIND(MID(A1,2,1),RIGHT(A1,2)),MID(A1,3,1)=RIGHT(A1,1))),"○","×")

(jjj) 2016/12/01(木) 10:23


 >1231や1232のような場合は×になるようなのですが・・・。

 jjjさん、指摘ありがとう。

 ケンさんすまない。
 質問をきちんと読まずに例で判断して連続した場合で判定していた。

 =IF(MAX(FREQUENCY(MID(A1,{1,2,3,4},1)*1,ROW($1:$10)-1))>1,"○","×")
 ではどうだろうか?

 追記
 =IF(OR(FREQUENCY(MID(A1,{1,2,3,4},1)*1,ROW($1:$10)-1)>1),"○","×")
 でもいいか。
(ねむねむ) 2016/12/01(木) 10:49

 FREQUENCY関数なんて使ったこともなかった。
 いつもながら、ねむねむさんの技は勉強になります。

(jjj) 2016/12/01(木) 11:42


 別案っす。

 =IF(MIN(LEN(SUBSTITUTE(A1,MID(A1,{1,2,3},1),"")))<3,"○","×")
(GobGob) 2016/12/02(金) 09:54

コメント返信:

[ 一覧(最新更新順) ]


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