Forum Discussion
jak8282
2 years agoHelper III
Not working Valid out correctly
Hi,
I have the following code but for some reason it is returning 54225690 as Invalid - can anyone see why - even chatgpt is saying everything looks OK?
Thanks
Landline Quality =
IF(
'Contact Details (Email & Phone)'[LandLine Number] = "",
"Missing",
IF(
LEN('Contact Details (Email & Phone)'[LandLine Number]) < 5
|| LEN('Contact Details (Email & Phone)'[LandLine Number]) > 15,
"Invalid",
SWITCH(
TRUE(),
IFERROR(FIND("*", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("&", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("%", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("$", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("£", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("!", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("^", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("+", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND(";", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND(":", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND(" ", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("?", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("<", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("-", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND(" ", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("(", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND(")", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("[", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
IFERROR(FIND("]", 'Contact Details (Email & Phone)'[LandLine Number]), 0) > 0, "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*1111*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*2222*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*3333*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*4444*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*5555*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*6666*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*7777*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "0*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*8888*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*9999*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*00000*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*012345*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*123456*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*234567*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*345678*"), "Invalid",
CONTAINSSTRING('Contact Details (Email & Phone)'[LandLine Number], "*456789*"), "Invalid",
"Valid"
)
)
)
3 Replies
- AndrewPFHelper V
It looks as if your compiler has interpreted some of your code as a comment (the green text about halfway down):
I wonder if it has thrown something else out of kilter.
- jak8282Helper III
I think thats more an issue with the code inputter on the forum
- jak8282Helper III
For some reason, making it a custom column in Power Query fixed this issue
each let LandLine = [Landline Number], lenLandLine = Text.Length(LandLine), containsInvalidChar = List.AnyTrue(List.Transform({"*", "&", "%", "$", "£", "!", "^", "+", ";", ":", " ", "?", "<", "-", "(", ")", "[", "]"}, each Text.Contains(LandLine, _))), containsInvalidSequence = List.AnyTrue(List.Transform({"*1111*", "*2222*", "*3333*", "*4444*", "*5555*", "*6666*", "*7777*", "0*", "*8888*", "*9999*", "*00000*", "*012345*", "*123456*", "*234567*", "*345678*", "*456789*"}, each Text.Contains(LandLine, _))) in if LandLine = "" then "Missing" else if lenLandLine < 5 or lenLandLine > 15 or containsInvalidChar or containsInvalidSequence then "Invalid" else "Valid")