Check if a cell contains same digits

Peter_SSs

MrExcel MVP, Moderator
Joined
May 28, 2005
Messages
42,562
Office Version
365
Platform
Windows
@Phouc,

(y) These are both excellent and elegant solutions to the OP's first two questions! Great <del>incite</del> insight into the underlying mathematical structure of the problem!
I agree. (y)


... you can use this somewhat compact code line to do your latest check...

MsgBox [AND(LEFT(A1)=MID(A1,2,1),MID(A1,3,1)=RIGHT(A1),LEFT(A1)<>RIGHT(A1))]
.. or using Phuoc's ideas and your notation

Code:
MsgBox [AND(MOD(LEFT(A1,2),11)=0,MOD(RIGHT(A1,2),11)=0,MOD(A1,1111)>0)]
 

Rick Rothstein

MrExcel MVP
Joined
Apr 18, 2011
Messages
35,561
Office Version
2010
Platform
Windows
Peter_SSs;5331191.. or using Phuoc's ideas and your notation [code said:
MsgBox [AND(MOD(LEFT(A1,2),11)=0,MOD(RIGHT(A1,2),11)=0,MOD(A1,1111)>0)][/code]
Good idea. If I am not mistaken, this can be "simplified" (using that word might be a stretch) to this...
Code:
MsgBox [(MOD(LEFT(A1,2),11)+MOD(RIGHT(A1,2),11)=0)*MOD(A1,1111)>0]
 

kelly mort

Well-known Member
Joined
Apr 10, 2017
Messages
1,687
Office Version
2016
Platform
Windows
Interesting!!!

I am really learning more and new tricks each single moments. I really appreciate that:)
 

kelly mort

Well-known Member
Joined
Apr 10, 2017
Messages
1,687
Office Version
2016
Platform
Windows
I agree. (y)


.. or using Phuoc's ideas and your notation

Code:
MsgBox [AND(MOD(LEFT(A1,2),11)=0,MOD(RIGHT(A1,2),11)=0,MOD(A1,1111)>0)]
Hi,
I just got into a trouble :


I decided to replace the "A1" with a variable from a user input and I start getting a syntax error alerts.

How do I fix that to take the variable?

Like
.....left(MyInput, 2), 11).......
I thought just taking away the square brackets will do the job yet my thinking was off the grid. :confused:
 

Rick Rothstein

MrExcel MVP
Joined
Apr 18, 2011
Messages
35,561
Office Version
2010
Platform
Windows
I decided to replace the "A1" with a variable from a user input and I start getting a syntax error alerts.

I thought just taking away the square brackets will do the job yet my thinking was off the grid. :confused:
Do you remember when I said "If you are always checking only cell A1 and no other" in Message #29 ... that was because the square brackets require fixed cell references (basically, it is a shortcut notation for evaluating a formula that one might find in a cell). The square brackets are sort of an alternative method for using the Evaluate function. The Evaluate function, however, can use variables because its argument is a text string which means you can concatenate the variable into text string constants (or use VB string functions to embed the variable into the text argument) and pass that into the Evaluate function. So what Peter suggested in Message #31 could be written like this in order to use a variable instead of a cell reference.
Code:
MsgBox Evaluate(Replace("AND(MOD(LEFT(@,2),11)=0,MOD(RIGHT(@,2),11)=0,MOD(@,1111)>0)", "@", YourVariable))
Note 1: I have assumed your variable's name is YourVariable (change it an necessary)

Note 2: I used the @ symbol as a stand-in for your variable in order to avoid multiple concatenations and then used VB's Replace function to change those @ symbols to the value stored in the variable.
 
Last edited:

kelly mort

Well-known Member
Joined
Apr 10, 2017
Messages
1,687
Office Version
2016
Platform
Windows
Yes I do remember that question.
:cool:

It's fixed now.
Cheers:)
 

Forum statistics

Threads
1,084,885
Messages
5,380,439
Members
401,679
Latest member
saffar

Some videos you may like

This Week's Hot Topics

Top