web-dev-qa-db-ja.com

最初の文字形式で曜日を含むセルをGoogleスプレッドシートの曜日名に変換する

Googleスプレッドシートでイベントのスケジュールを作成しました。

  • MWFを含むセルがあり、イベントが毎週月曜日、水曜日、金曜日であることを示しています。
  • Word Mondayを報告する別のセルがあります。

2つのイベントが重複しているかどうかを確認したいと思います。

つまり、2番目のセルのMondayが最初のセルのMWFに含まれているかどうかを判断する必要があります。

  • この場合、2番目のセルにTRUEが含まれる代替シナリオでは、Thursdayと比較すると、代わりにFALSEが報告されますが、私が望む結果はMWFを報告します。

視覚的な例:

enter image description here

これらの文字を定義するためにスプレッドシートの別の領域を追加せずにこれを行う方法はありますか?

  • 例:IしないM, T, W, H, Fの列と、「definitions」(つまり、Monday, Tuesday, Wednesday, Thursday, Friday)を含む別の隣接する列を追加して参照したい。
1

次のようなものを試すことができます:=ISNUMBER(SEARCH(LEFT(B1; 1); A1))


UPDATE:

上記の式は十分ではありませんでしたが、これは次のとおりです。

=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)); )))))))

where:

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

更新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