Check for duplicates in Google sheets - google-sheets

hoping someone can help here.
I am simply looking to identify duplicate names in one column and update a drop-down in another. The only caveat to this would be to allow one to pass as unique with the rest being duplicated. I have posted a screenshot as a demo of what I'm looking to achieve.
So in here you will see Bob appearing 3 times, the first should be yes to unique with the other 2 being no.
Name
Unique
Bob
Yes
Charles
Yes
Audrey
Yes
Bob
No
Bob
No

use:
=INDEX(IF(A2:A="";;IF(COUNTIFS(A2:A; A2:A; ROW(A2:A); "<="&ROW(A2:A))=1; "yes"; "no")))

Related

Google sheet automatic addition of the number of items

hello to all who are able to help me I apologize in advance because I know it's somewhere on stackoverflow but I can't find it
I need it to automatically assign me a number to the selected column
(do not look at the date in columns C and D)
in column B there are unique repeatable names and I want it to have a number assigned depending on which time it has already been written
and I would like it to be dependent on column E as well
I don't want something like that
just something like this
Thanks for Help
I looked on the website but I couldn't find it, I know it's there somewhere
try in A2:
=INDEX(COUNTIFS(B2:B; B2:B; ROW(B2:B); "<="&ROW(B2:B)))

Allocating serial ID based on another column in Google sheets

I'm trying to allocate serial/sequential ID's to the students based on the course they are signed up for, which is specified in another column.
For example, if john is the first one to signup for "English", ID is "E0001", the second person signed up for "English" will be allocated "E0002".
And then, if third person signs up for a different course "Maths", I have to start another new sequence, say "M0001".
I tried several combinations with IF and SEQUENCE, CONCATENATE... but was unable to figure out a proper way of doing this. I would very much appreciate anyone's help.
Try COUNTIFS() applying few tricks.
=Arrayformula(IF(B2:B="",,LEFT(B2:B,1) & "000" & COUNTIFS(B2:B, B2:B, ROW(B2:B), "<="&ROW(B2:B))))

How do I return missing data when comparing two columns?

I've read a few similar questions, and I can't seem to find exactly what I'm trying to do.
I have a roster of employees in sheet "Roster" with their names in Column A. In sheet "Hours" I have a list of assigned jobs for tomorrow, with the assigned employee's name also in Column A. I'm trying to add a column of employees from the roster that are NOT in the list of employees on jobs.
The closest I've gotten is with this, on the Hours sheet:
=ARRAYFORMULA(VLOOKUP('Roster'!A2:A, A2:A,1,0))
which gives me a list of the entire roster, with the missing ones returning an #N/A error that tells me the missing name when I mouse over it and read the error code. Is there a way to just get a list of the errors? Would I be better off attacking this from a completely different angle?
EDIT: Sanitized example pictures. If what I was trying to do worked, it would return Bob and Jim in this example.
Assuming you're trying to return this list in the "Hours" sheet, you can build off what you had. Try this:
=ARRAYFORMULA(FILTER(A2:A,ISERROR(VLOOKUP('Roster'!A2:A, A2:A,1,0))))
Keep in mind that this formula was written sight-unseen. If it doesn't work as expected, consider sharing a link to a copy of your sheet (or to a sample sheet set up the same way and with enough sanitized but realistic data to illustrate the problem, along with the manually entered result you want in the range where you want it).
I ended up going a completely different route. I made a third "Under the Hood" sheet, pulled the two columns into it with queries, ran a match formula down the list and returned "" on errors, then ran a query on Hours to get the names where it had null for the match list.

How to automatically change a sentence to add a word from a list (Google Sheets or Excel)

Hi there and thank you for any support received in advance!
I have a Google Sheets document (https://docs.google.com/spreadsheets/d/1vKc1u1B_Yz8MOUX7x1dRucrKZepozqft18N_jkVAgX8/edit?usp=sharing) that has a list of towns in it and a series of default questions (about my fishing project).
I would like to be able to run some form of script or code that automatically changes the "XXXXXX" in any sentence and replaces it with a word from the list of towns. There will be 10 questions (once I have finished the project) and each line of the sheet will need to have questions for each individual town (with the name changed). If someone is able to help I would really appreciate it and you can change that document as much as you'd like (it is a demo that I have set up for the purpose of asking this question). I would also appreciate a short explanation as to how you achieve the required result so I can learn and apply this in the future (without having to come back to S.O everytime).
Thanks!
If you are ok with writing the default question in the header row (see the copy of the sheet I made) then you could use in B3
=Arrayformula(if(len(A3:A), substitute(B2:C2, "XXXXXX",A3:A),))
to create the output in the range B3:C.
If changing the range of the default questions is not an option you can check out the sheet 'JPV_2' where I entered in cell C3
=transpose(Arrayformula(if(len(A3:A), substitute(transpose(B3:B4), "XXXXXX",A3:A),)))
I hope that helps?

Duplicating/triplicating rows of data

I have these rows:
Alex
Bob
Chris
I need a function to create three rows for each one, in a way it looks like this:
Alex
Alex
Alex
Bob
Bob
Bob
Chris
Chris
Chris
How can I do that?
I believe your goal as follows.
You want to achieve the following conversion using the built-in functions.
From
Alex
Bob
Chris
To
Alex
Alex
Alex
Bob
Bob
Bob
Chris
Chris
Chris
For this, how about this answer?
Sample formula:
=ARRAYFORMULA(TRANSPOSE(SPLIT(TEXTJOIN("#",TRUE,SUBSTITUTE("###","#",A1:A3&"#")),"#")))
The flow of above formula is as follows.
Create the base 3 rows using SUBSTITUTE("###","#",A1:A3&"#") as a string.
For example, Alex becomes Alex#Alex#Alex#.
Merge each string of each source rows using TEXTJOIN.
For example, Alex, Bob, Chris becomes Alex#Alex#Alex##Bob#Bob#Bob##Chris#Chris#Chris#.
Split the string using SPLIT.
By this, each value is put to each cell.
Transpose the values using TRANSPOSE.
By this, the result value can be retrieved.
In this case, =TRANSPOSE(ARRAYFORMULA(SPLIT(TEXTJOIN("#",TRUE,SUBSTITUTE("###","#",A1:A3&"#")),"#"))) can be also retrieve the same result.
Result:
Note:
If the source values include #, please modify to other character.
In this case, when a lot of rows are converted, an error related to the limitation might occur. So please be careful this.
References:
SUBSTITUTE
TEXTJOIN
SPLIT
TRANSPOSE

Resources