• ベストアンサー

【Excel365】数字のみの場合に表示させたい

A列に10桁固定の数字のみ入力されていたらC列に「有効」と表示させる関数をご教示ください。 A列は0から始まる数字もあるため文字列です。 行数は数百行あります。 列の挿入はできません。 よろしくお願いします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.8

回答No.6の訂正です。 No.6の10桁のやつはあたまに0がある時のデータで確認してなかったので間違ってました 10桁限定でしたら =IFERROR(IF(A2="","",IF(ISNUMBER(VALUE(A2)),IF(LEN(A2)=10,"有効",""),"")),"") 10桁以外があった場合の桁数表示あり =IFERROR(IF(A2="","",IF(ISNUMBER(VALUE(A2)),IF(LEN(A2)=10,"有効",LEN(A2)&"桁"&"です"),"")),"")

KO1014
質問者

お礼

ご回答ありがとうございました。 桁数間違いの場合に注意勧告できるので、この関数を適用させていただきます。 大変助かりました。

その他の回答 (9)

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.10

添付図参照(Excel 2019)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓

KO1014
質問者

お礼

ご回答ありがとうございました。

  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.9

365 なら、スピルが使えます。 C2: =IF(ISERROR((A2:A99&"")+0),"","有効") 下へコピペの必要はありません。 99は実データに合わせて変更して下さい。

KO1014
質問者

お礼

ご回答ありがとうございました。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.7

回答No.6の訂正というかなんどいうか =IFERROR(IF(A2="","",IF(VALUE(A2),"有効","")),"") 上記でもいけてますが念のためにISNUMBERを入れておきます(数値かどうか確認してるのが見てわかると思うので) =IFERROR(IF(A2="","",IF(ISNUMBER(VALUE(A2)),"有効","")),"")

KO1014
質問者

お礼

ご回答ありがとうございました。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.6

回答No.1の訂正です。 未入力のセルがあると有効になっていたので =IFERROR(IF(A2="","",IF(VALUE(A2),"有効","")),"") 10桁限定でしたら =IFERROR(IF(A2="","",IF(LEN(VALUE(A2))=10,"有効","")),"") 10桁チェックするのでしたら10桁以外があった場合の桁数表示もあった方がいいかもで =IFERROR(IF(A2="","",IF(LEN(VALUE(A2))=10,"有効",LEN(A2)&"桁"&"です")),"")

KO1014
質問者

お礼

ご回答ありがとうございました。

  • NuboChan
  • ベストアンサー率47% (785/1650)
回答No.5

求められていませんがVBAなら 標準モジュール用、WorkSheet用です Option Explicit Sub CheckColumnA() Dim lastRow As Long Dim i As Long lastRow = Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To lastRow If Len(Cells(i, "A").Value) = 10 And IsNumeric(Cells(i, "A").Value) Then Cells(i, "C").Value = "有効" End If Next i End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long If Intersect(Target, Range("A2:A300")) Is Nothing Then Exit Sub Else If Len(Target.Value) = 10 And IsNumeric(Target.Value) Then Target.Offset(0, 2) = "有効" End If End If End Sub

KO1014
質問者

お礼

ご回答ありがとうございました。

回答No.4

C2セルに =IF(AND(ISNUMBER(A2*1), LEN(A2)=10), "有効", "") を入力し、C3以降にもコピーしてください。

KO1014
質問者

お礼

ご回答ありがとうございました。 10桁のみに表示させたい時にはこの関数でOKですね。

  • sknbsknb2
  • ベストアンサー率38% (1158/3030)
回答No.3

C2に =IFERROR(IF(A2=TEXT(VALUE(A2),"0000000000"),"有効",""),"") と入れて、C3から下にコピーしてください。

KO1014
質問者

お礼

ご回答ありがとうございました。 10桁のみに表示させたい時にはこの関数でOKですね。

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

データ例 A1:C7 C列は結果 A列の数字だけのデータは、先頭にアポストロフィを付けた。 000369000 有効 0123456789 有効 2222222222 有効 廃番 登録待ち4444444 確認中 9988776655 有効 -- C1セルの関数 =IF(ISNUMBER(VALUE(A1)),"有効","") 下方向に式を複写。 結果 上記C列の通り。 充分な、色んなケースでテストして、反例があれば出してください。

KO1014
質問者

お礼

ご回答ありがとうございました。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

C2に =IFERROR(IF(ISNUMBER(VALUE(A2)),"有効",""),"") でいかがですか

KO1014
質問者

お礼

ご回答ありがとうございました。

関連するQ&A