Google Sheets – Join multiple scopes when using conditional formatting

I have a simple formula for conditional formatting that highlights duplicate values ​​in a column:

= countif (A: A, A1)> 1

I have another column on another worksheet (the same workbook) that I want to consider when looking for duplicates. I can combine the areas with the following formula separately:

= Query ({Sheet1! A: A; Sheet2! A: A}, "where Col1 <> & & # 39;")

but I can not use this formula in conditional formatting. What I have (which does not work) is:

= countif (query ({Sheet1! A: A; Sheet2! A: A}, "where Col1 <> &" "), A1)> 1

I do not understand how "where Col1 <> is & # 39;" works or why I need it, but still the formula does not work.

The question is, how can I (using conditional formatting) highlight duplicate cells in column A and search for duplicates in multiple areas?

Amazon Affilate Site for binoculars and scopes

Why are you selling this website?
I just do not have time to do everything the way I can (* it's been around for a while, only other bigger projects that I'm needed). Sorta groaned when he saw how it went.

How is it monetized?
Amazon Affiliate, but you can also sell products if you like or install Add Sense. The website is solid.

Is this site coming with social media accounts?
No.

How long does it take to run this site?
Do a few basic SEO and link building features and you should go to the races.

What are the challenges of running this site?
To rank only a few of the keywords, but it is a low hanging fruit. Set and forget that.
SEMrush

It's easy to get a product from Amazon, get that affiliate link, post it on the site, then share it on social media or create some inbound links. Or use the domain to build an Alibaba dropshipping business and deposit funds. (* That was all I was going to do).

Scouting – Is there a way to automatically group tiles in an A * Pathfinding raster to find the largest scopes?

var tile = [[1, 1, 1, 1, 1, 1, 1, 1],
            [1, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 1],
            [1, 1, 1, 1, 1, 1, 1, 1]];

$ (Document) .ready (Function () {
$ (& # 39; # GenerateButton & # 39;). Click (function () {
GenTiles ();
CreateNavMesh ();
});
});



Function GenTiles () {
$ (& # 39; # window & # 39;). html (& # 39; & # 39;);


var terrainString = "";
for (var x = 0; x <tile.length; x ++) {
terrainString + = & # 39;
& # 39 ;; for (var y = 0; y <tile[x].Length; y ++) { var dirt = & # 39;
& # 39 ;; var wall = & # 39;
& # 39 ;; Switch (Tile[x][y]) { Case 0: if (Math.random ()> 0.3) { terrainString + = dirt; } miscellaneous terrainString + = wall; } break; Case 1: terrainString + = wall; break; } } terrainString + = & # 39;
& # 39 ;; } $ (& # 39; # window & # 39;). attach (terrainString); } Function CreateNavMesh () { / * var mainDiv = $ ("# window"). children (). toArray (); console.log (mainDiv[0][0]); for (var x = 0; x <mainDiv.length; x ++) { console.log (mainDiv[x].children (). toArray ()); for (var y = 0; y <mainDiv[x].Length; y ++) { console.log (mainDiv[x],[y]); if (mainDiv[x],[y] == 0) { mainDiv[x],[y].addClass (& # 39; highLight & # 39;); } miscellaneous chosCol = back[Math.floor(Math.random() * back.length)]; } } } * / var back = ["#ff0000","blue","gray", "purple"]; var rand = back[Math.floor(Math.random() * back.length)]; var chosCol = rand; $ (".row") .each (function () { $ (this) .children (). each (function () { console.log ($ (das)); if ($ (this) .hasClass ("tileGround")) { $ (this) .css ("background color", chosCol) ;; } miscellaneous // chosCol = getRandomColor (); } }); }); } function getRandomColor () { var letters = & # 39; 0123456789ABCDEF & # 39 ;; var color = & # 39; # & # 39 ;; for (var i = 0; i <6; i ++) { Color + = letters[Math.floor(Math.random() * 16)]; } Return color; }
#Window{
Width: 240px;
Height: 240px;
overflow: auto;
}

.Line{
Screen lock;
Float: none;
Position: relative;
Height: 30px;
}

.Tile{
Background color: #ddd;
Width: 30px;
Height: 30px;
Swimmer: left;
}

.tileWall {
Background color: # 333;
Width: 30px;
Height: 30px;
Swimmer: left;
}

.tileGround {
Background color: #fff;
Width: 30px;
Height: 30px;
Swimmer: left;
}

.To mark{
Background color: # 444;
}

  
    
    
    
  

  
    

oauth2 – How To: Granular API Security Using OAuth Scopes and Claims

I'm trying to figure out how to best secure an API with oAuth scopes and / or claims. I'm not sure what to use.

My setup is as follows:

  • All users log in to signin.domain.com

  • There are several customers www.domain.com and admin.domain.com

  • There is a resource server api.domain.com

  • There are several areas data.read and data.write

  • www.domain.com requests an area data.read and admin.domain.com calls for both areas data.read and data.write

  • Some users who are administrators must be able to write data (for example, POST to api.domain.com), but all authenticated users can read.

If I understand it, users log on with the client www.domain.com There is no token with the scope data.write even if the customer wants it.

I read that scopes are kind of claim categories [1], Does this mean that when a client requests a particular scope, I must fill the token with all claims connected to this extent?

From there, does my resource server check if the user has the right claim?

Or does the resource server only check if the token contains the correct range?

In both cases, it is not possible to assign areas to the users, only the clients, and it is not enough to say "users have logged on to client x so they can get write permission." So it seems that my first assumption is the only correct one.

I would be grateful if someone could clarify how grants and claims should provide granular API access.

Swell:

[1] https://www.quora.com/Was-ist-die-unterschiede-zwischen-und-anspruchs-in-OpenID-Connect-spezifikation