I am aware that regex does not work with numeric values, yet, how can we have a regex pattern to differentiate between numbers in a Google sheets formula?
For example: >=13 and <13
| A | B |
|---|---|
| desired result | |
| 5 | 5♥ |
| 2 | 2♥ |
| 13 | 13♦♦♦ |
| 12 | 12♥ |
| 30 | 30♦♦♦ |
| 17 | 17♦♦♦ |
| 0 | 0♥ |
| -4 | -4♥ |
| -12 | -12♥ |
| 22 | 22♦♦♦ |
| -55 | -55♥ |
| 31 | 31♦♦♦ |
| -13 | -13♥ |
| -31 | -31♥ |
I can solve this in alternative ways like:
=INDEX(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE("" & A2:A16,
"\b(^" & JOIN("$|^", SEQUENCE(13, 1, )) & "$)\b", "$1♥"),
"(^-\d )", "$1♥"),
"(\d $)", "$1♦♦♦"))
...but I feel there could be some more "regexy" solution.
Rules of combat:
- regex pattern
- no
IF-statements >=13add ♦♦♦<13add ♥- no
IFERRORpivots - no non-regex solutions
CodePudding user response:
You could first add the diamonds and then replace those by a heart when the number is less than 13:
=REGEXREPLACE(A1 & "♦♦♦"; "^(-\d |1[0-2]|\d)♦♦♦$"; "$1♥")
The regular expression looks for three patterns:
-\d: any negative number1[0-2]: 10, 11 or 12\d: 0,1,2,..., or 9.
CodePudding user response:
Try:
=REGEXREPLACE(REGEXREPLACE(TO_TEXT(A1), "^(-\d |[0-9]|1[0-2])$", "$1♥"), "^([^♥] )$", "$1♦♦♦")


