• ベストアンサー

列に重複値ある無し調べることできますか?(Excel)

下記のように各列の値に、ダブりがあるかないかを判定することできるのでしょうか? A B C D E 3 5 1 3 2  ←重複!!(3が2個) 4 3 5 2 1  ←OK重複なし 1 3 1     ←重複!!(1が2個)列数は一定でない and(A1<>B1, A1<>C1,...)のように延々と逐一判定式を書かなければならないのでしょうか? 列数20くらいあるのですが(^^; 1からの順番数なので、1+2+3+4+5 = 15 ということを利用して if(sum(A1:E1)= 15, "OK", "異常") としたいところですが、列数(値が入った)が変動します(第1行は10列、第2行は17列等) 列数はcount(A1:X1)でわかるのですが、 if(count(A1:X1)=3, if(sum(A1:X1)=6, "OK", "異常"), if(count(A1:X1)=4, if(sum(A1:X1)=10, "OK", "異常"), ... とやはり延々と書き連ねるしかないのでしょうか?

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

  • ベストアンサー
回答No.1

ほとんど答えをお持ちじゃないですか! 「列数がわかる」「順番数」ってことは IF関数を共通にできればあとはコピーだけですよね! IFの条件を SUM(A1:X1)=(COUNT(A1:X1)+1)*COUNT(A1:X1)/2 にしたらいいのでは? IF(SUM(A1:X1)=(COUNT(A1:X1)+1)*COUNT(A1:X1)/2,"OK","NG")

xespr
質問者

お礼

早速のご回答ありがとうございます! 1+2+3=6 をはじき出せる式があったんですね! やっぱりこのへんがプロとヘボアマの違いです。 完璧でした。ありがとうございました!!

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

下記で旨く行くと思いますが。 配列数式です。 (例データ)A1:G3 1 1 2 3 1 1 2 2 3 2 4 2 2 2 2 1 3 4 5 6 7 1 2 3 4 5 6 6 1 2 4 5 7 8 1 3 4 5 5 (関数式) H1に =IF(SUM(IF(COUNTIF(A1:G1,A1:G1)<=1,0,1))=0,"","重複") といれて、Shift+Ctrl+Enterキーを押す。3つのキーを同時に押すことを意味する。 (結果)H1:H6は 重複 重複 重複 重複 配列数式で、微妙なところあり。十分テストしていただくことをお願いします。

xespr
質問者

お礼

ありがとうございます imogasiさん! imogasiさんにも1回お世話になりました。 ご丁寧にホントにありがとうございます。 早い順でポイントさせていただいたので、imogasiさんまで与えられませんでした。申し訳ないです。 素晴らしいご回答本当にありがとうございました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 1行目の判定は、セルに、 =IF(SUM(IF(ISNUMBER($A1:$E1),1/COUNTIF($A1:$E1,$A1:$E1)))=COUNT($A1:$E1),"OK","異常") と入力して、[Ctrl]と[Shift]を押しながら[Enter]を押して確定します。 (数式の両端に「{}」が付いて、配列数式になります。) これを下の行へコピーします。 なお、数式中の「$A1:$E1」は想定される最大使用列数(範囲)にして下さい。 例えば、最大26列入力する可能性があるなら、「$A1:$Z1」にします。 もちろん、その最大26列に全て数値を入力する必要も、前(A列)から順に入力する必要もありません。

xespr
質問者

お礼

こんにちわ!maruru01さんには前にも1回お世話になってます。ありがとうございます! 完璧です。配列数式なんて言葉初めて聞きました。 内容はまだ理解してませんが、バッチリでした。ありがとうございます!!

関連するQ&A