web-dev-qa-db-fra.com

Conversion de la cellule contenant les jours de la semaine en format de première lettre en noms de jours dans Google Sheets

J'ai créé un calendrier des événements dans Google Sheets.

  • J'ai une cellule qui contient MWF, indiquant que l'événement a lieu tous les lundi, mercredi et vendredi.
  • J'ai une cellule différente qui rapporte le mot Monday.

Je voudrais déterminer si mes deux événements se chevauchent.

En d'autres termes, je dois déterminer si Monday à partir de la 2e cellule est inclus dans MWF à partir de la première cellule.

  • Dans ce cas, le résultat souhaité doit indiquer TRUE, tandis qu'un autre scénario dans lequel la deuxième cellule contient Thursday indique plutôt FALSE lors de la comparaison avec MWF.

Exemple visuel:

enter image description here

Est-il possible de le faire sans ajouter une région distincte d'une feuille de calcul pour définir ces lettres?

  • Ex: I ne veux pas ajouter une colonne avec M, T, W, H, F et une autre colonne adjacente contenant des "définitions" (c'est-à-dire Monday, Tuesday, Wednesday, Thursday, Friday) à laquelle renvoyer .
1
theforestecologist

vous pouvez essayer quelque chose comme: =ISNUMBER(SEARCH(LEFT(B1; 1); A1))


UPDATE:

la formule ci-dessus n'était pas assez intelligente, mais celle-ci est:

=IF(LEFT(B1; 2)="Mo"; ISNUMBER(SEARCH(LEFT(B1; 1); A1)); 
 IF(LEFT(B1; 2)="Tu"; ISNUMBER(SEARCH(LEFT(B1; 1); A1)); 
 IF(LEFT(B1; 2)="We"; ISNUMBER(SEARCH(LEFT(B1; 1); A1)); 
 IF(LEFT(B1; 2)="Th"; ISNUMBER(SEARCH(RIGHT(LEFT(B1; 2); 1); A1)); 
 IF(LEFT(B1; 2)="Fr"; ISNUMBER(SEARCH(LEFT(B1; 1); A1)); 
 IF(LEFT(B1; 2)="Sa"; ISNUMBER(SEARCH(LEFT(B1; 1); A1)); 
 IF(LEFT(B1; 2)="Su"; ISNUMBER(SEARCH(RIGHT(LEFT(B1; 2); 1); A1)); )))))))

où:

Monday     =   M
Tuesday    =   T
Wednesday  =   W
Thursday   =   H
Friday     =   F
Saturday   =   S
Sunday     =   U

MISE À JOUR 2:

=ARRAYFORMULA(IF(LEN(A1:A)*LEN(B1:B), REGEXMATCH(TRANSPOSE(QUERY(TRANSPOSE({
 REGEXMATCH(A1:A, REGEXEXTRACT(B1:B, "..")), REGEXMATCH(REGEXEXTRACT(B1:B, ".."),
 REGEXREPLACE(IF(SPLIT(REGEXREPLACE(A1:A, "([A-Z])", " $1"), " ")="", "♦", 
 SPLIT(REGEXREPLACE(A1:A, "([A-Z])", " $1"), " ")), "..", "♦"))}),,999^99)), "T"), ))

0

1
user0