IMPORTRANGE with Blacklist on Google SHeets - google-sheets

I'm quite novice so I apologize if this is obvious. I'm trying to have an import range show names and another value from another google sheet, but exclude those from a blacklist. I have pasted the formula I'm currently working with below. Any ideas?
=QUERY(IMPORTRANGE("XXXXX", "XXXX!$A:$B"), " skipping != 'Blacklist'!$A:$A")
The import range it pulls from is a Filter already, I've pasted that below. Could it be worked there?
=IFERROR(FILTER('XXXXX'!$A:$B, 'XXXXXX'!$H:$H = "ABCD")," ")
Thanks in advance!

FILTER is my preferred way of removing from a list.
Here is the formula
=FILTER(A2:A6,NOT(COUNTIF(B2:B3,A2:A6)))
You can think of it like
=FILTER( list ,NOT(COUNTIF( needle , haystack)))
Usually you use this to whitelist a document (hence why I dedicated this formula to memory in a needle-haystack fashion.) But by throwing in the NOT in the criteria of the filter, it works great for blacklisting too!
As to why it works, I'm not sure, my best guess is when google sheets is running through the COUNTIF for any given cell if it meets the criteria it will return a '1' which is truthy and it includes it in the results. This also allows us to compare un-even amounts of data. ie. B2:B3 rather than B2:B6

Related

How can I apply conditional formatting to a list of values returned by IMPORTRANGE() function based on if the value occurs in another column

I am using Google Sheets and have been able to import a range of values from another sheet into my desired sheet that I am working from. I want to highlight the values in the imported range based on whether they occur in a column of values present within my sheet. I've looked up multiple resources online, but have yet to find a solution. Any advice is greatly appreciated.
For anyone that runs into a similar issue, I found a solution. I applied a custom formula as a conditional formatting rule. Here is the formula I used. =NOT(ISNA(VLOOKUP(A1,$I:$I,1,FALSE))). For an in-depth explanation, consider this link: https://www.automateexcel.com/formulas/if-isna-vlookup-2/

Inverse LOOKUP in google sheets to return column name

Good day,
I am currently sorting a storage unit, where various parts from samples are stored in multiple locations. The idea is to sort it. So I am creating a spreadsheet for each part. The columns will be the location and the rows are a list of the sample numbers of which the parts can be found in this location.
input:
A spreadsheet like this will exist for every part.
The idea is to have a final table, sorted by sample number, which has the parts in the columns. I want the cells to return where this part of this sample is stored:
desired output:
I tried various LOOKUP formulas but they do not return the column name.
Because this has to be accessible by multiple people, it has to be in google sheets.
This is an example file: https://docs.google.com/spreadsheets/d/1pUmTs0mLoZAdPc83pLXC75MCUF2P1SHDtEfYPEMohr4/edit?usp=sharing
I am super thankful for any help!
With the help of this website:
https://infoinspired.com/google-docs/spreadsheet/search-across-columns-and-return-the-header/
I found a solution. The idea is to use match functions for each column. For the example posted the code looks like this:
=ifs(isna(match(A2,'Part 1'!$A$1:$A$7,0))=FALSE,'Part 1'!$A$1,isna(match(A2,'Part 1'!$B$1:$B$7,0))=FALSE,'Part 1'!$B$1,isna(match(A2,'Part 1'!$C$1:$C$7,0))=FALSE,'Part 1'!$C$1,isna(match(A2,'Part 1'!$D$1:$D$7,0))=FALSE,'Part 1'!$D$1)
I know it is not pretty, but it works, as the number of columns is limited. The website also suggests a dynamic solution with a query function, but that only works when the cell left of the cell of interest has entries.
Thanks to everyone :-)

LOOKUP Function won't output correct value

I'm trying to create an Activity tracker for a game. However, I'm trying to use the LOOKUP function to track activity throughout 3 different sheets. However, the LOOKUP function does not seem to be outputting the correct value. LINK: https://docs.google.com/spreadsheets/d/1tdq6oeEFjgxJg6FXvSH2ZmkgRlHaFiD5aycjvezfNvc/edit?usp=sharing
If you look at Activity sheet, E2:E52, you should understand that it's outputting the wrong value(At least based on what I'm reading on the google docs).
I've tried converting this over to one sheet to see if that was the problem, however, it didn't work there either, I tried being more inclusive of the exact letter and number combination and that didn't help either.
I expect it to output the Attacks column for the username based on the Activity1 sheet.
Any help would be greatly appreciated.
PS: I tagged excel as it does the same exact thing on excel, however it gives slightly different values. I'm very confused.
use VLOOKUP instead:
=ARRAYFORMULA(IFERROR(VLOOKUP(D2:D,
{Activity1!C:D; Activity2!C:D; Activity3!C:D}, 2, 0)))

Check cell for multiple strings and return specific values

I'm trying to create a Google Sheet formula that searches for a word in a longer string and returns a specific value based on the string being searched.
I can achieve this in Excel but I need this to work in Google Sheets.
Below is an example of what I'm trying to achieve:
The "Sort" column is retrieving the value based on checking if the word in column "C" exists in column "A".
I've tried using wildcard search but this isn't working for me in Google Sheets, and other examples I've seen online don't seem to allow me to return multiple values.
Any help would be much appreciated.
This formula may fit you:
=IFERROR(REGEXEXTRACT(A1,JOIN("|",FILTER(C:C,C:C<>""))),"none")
Here're some useful links:
REGEXEXTRACT
JOIN
FILTER

SUMIF with FIND as criteria

I'm trying to summarize data from several Google spreadsheet' sheets in a single one but I have some issues with SUMIF and FIND.
To Sum data from another sheet I have to use this (at least that's the only solution I've found)
=SUM(INDIRECT(""&A6&""&"!E2:E"))
Where I have the name of my sheet on A6.This makes everything easy because I have a column (A) with all the names of the sheets. I haven't found something like Sheets[1] in Google Docs.
My next step was to Sum Times from a specific column but remove a specific values, which in this case is 1 that get transformed internally 24:00:00 since it's a time column:
=SUM(INDIRECT(""&A6&""&"!D2:D")) - SUMIF(INDIRECT(""&A6&""&"!D2:D");"24:00:00")
Here I tried to do everything with a single SUMIF but I have no idea how. NOT("24:00:00") didn't work so I settled to this.
The last part is the most difficult and I'm not able to solve it.
I have a column with month names (for example) and I want to sum some data only when the month name contains "er". Here is what I thought:
=SUMIF(A6:A16,ISNUMBER(Find("er")),G6:G16)
This gives me always 0
(Note that the last one contains A6:A16 instead of the whole INDIRECT part because I am still testing it in a single sheet.)
Any Idea what I'm doing wrong?
I don't know why the above SUMIF doesn't work, what I've tested and works is:
=SUMIF(A6:A16,"*er*",G6:G16)
SUMIF is NOT SUM + IF as I thought. I hope it will help someone else.

Resources