[[20240410093119]] 『カレンダーに重複する日付の転記』(neo C) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『カレンダーに重複する日付の転記』(neo C)

こんにちは。
よろしくお願いします。

打合せシート、
場所、担当、日付1、日付2、日付3等の項目があり、
別のシート(カレンダー)に、打合せの日付をもとに
場所名を転記したいです。

現状として、
カレンダーの方には打合せシートの日付から
場所名の転記まで出来たのですが、
日付が重複する場合、最初にマッチした日付の
現場名しか転記出来ずに困っています。
ご教授の程、宜しくお願い致します。

下記に詳細記載します。

〇打合せシート

    B         C    ・・・・   I      J       K

1  場所 担当者 ・・・・ 日程1 日程2 日程3

2 打合せ室1 佐藤 ・・・・ 4/1 4/6

3 打合せ室2 山本 ・・・・ 4/1 4/4 4/10

4 打合せ室3 高橋 ・・・・ 4/3 4/6 4/13

5 打合せ室4 斎藤 ・・・・ 4/8 4/12 4/13

な感じで、日程が記載されています。

〇カレンダーシート

    B C D E F G H
1  月曜 火曜 水曜 木曜 金曜  土曜  日曜

2  4/1 4/2 4/3 4/4 4/5 4/6 4/7

3 打合せ室1   打合せ室3       打合せ室1

4 打合せ室2       打合せ室2 打合せ室3

5

6 4/7 4/8 4/9 4/10 4/11 4/12 4/13

7 打合せ室4 打合せ室2 打合せ室4 打合せ室3

8 打合せ室4

な感じに転記したいのですが、
現状の式では、上手くいきません。

現状の式は、
例えばカレンダーシートのB3セルの場合、

=IFERROR(INDEX(打合せシート!B2:K5,MATCH(カレンダー!B2,打合せシート!I2:I5,0),1),IFERROR(INDEX(打合せシート!B2:K5,MATCH(カレンダー!B2,打合せシート!J2:J5,0),1),IFERROR(INDEX(打合せシート!B2:K5,MATCH(カレンダー!B2,打合せシート!K2:K5,0),1),"")))

と、
打合せシートのI列、J列、K列と読んでいって、
4/1の日付に最初にマッチする日付の現場名をカレンダーシートに
表示する様にしています。

そして、重複する日付をうまく取り出せないので、
カレンダーシートのB4セルには、

=IFERROR(INDEX(打合せシート!B2:K5,MATCH(カレンダー!B2,打合せシート!J2:J5,0),1),IFERROR(INDEX(打合せシート!B2:K5,MATCH(カレンダー!B2,打合せシート!K2:K5,0),1),IFERROR(INDEX(打合せシート!B2:K5,MATCH(カレンダー!B2,打合せシート!I2:I5,0),1),"")))

と、
J列、K列、I列と読みに行く列をずらす事で、
ある程度は転記する様にしております。

ここで教えて頂きたいのですが、
カレンダーシートのB3セルで、4/1の日付(打合せ室1)が転記
された場合、B4セルは、B3セルに記載したのを除いて、
4/1の日付(打合せ室2)と転記させるにはどの様にしたら良いのでしょうか?

因みに、
カレンダーシートにて同じ文言については、
「条件付き書式」で非表示にして、
重複表示しない様にしています。

宜しくお願い致します。

< 使用 Excel:Microsoft365、使用 OS:Windows10 >


 シートデータのレイアウトが崩れているので、外しているかもしれませんが、
 下記のようなことでしょうか。

 B3セルに下記の式を設定
 =LET(t,
  VSTACK(
   FILTER(打合せシート!$B2:$B5,打合せシート!$I2:$I5=カレンダー!B2,""),
   FILTER(打合せシート!$B2:$B5,打合せシート!$J2:$J5=カレンダー!B2,""),
   FILTER(打合せシート!$B2:$B5,打合せシート!$K2:$K5=カレンダー!B2,"")
  ),
  FIlTER(t,t<>"",""))

 右にコピー

(hatena) 2024/04/10(水) 13:26:48


hatenaさん
コメントありがとうございます。

すみません。多分、私のやり方が間違っているので、
エラーが出て上手くいきません。

又、私の質問の仕方も色々書きすぎて読みづらかったと思います。

ですので、質問を簡単にしてみます。

シートに、

    A    B   C    D    E

 1   記号    日付        日付   記号

 2  〇   4/1               4/1      〇

 3  ×   4/1                        ×

と表があるとして、
D2セルに日付(4/1)を入力すると、
E2セルに「〇」を表示し

 E2 = IFERROR(INDEX(A2:A3,MATCH(D2,B2:B3,0),1),"")

E3セルには、同じ列(B列)で2番目にヒットした「×」を表示したいです。

現状、実際のカレンダーには最初に投稿した長々した式が入ってますので、
出来れば追記する式だとありがたいです。

宜しくお願い致します。

(neo C) 2024/04/10(水) 14:27:27


 バージョンはMicrosoft365で間違いないですか。 
 ならエラーにはならないと思いますが。

 へたに省略するとかえって紛らわしくなります。
 最初の質問のままでいきましょう。

 最初の質問のデータが下記だとしたら、

 【打合せシート】
 1 B          C     ・・・・ I      J       K
 2 場所       担当者・・・・ 日程1 日程2  日程3
 3 打合せ室1 佐藤  ・・・・ 4/1   4/6  
 4 打合せ室2 山本  ・・・・ 4/1   4/4    4/10
 5 打合せ室3 高橋  ・・・・ 4/3   4/6    4/13
 6 打合せ室4 斎藤   ・・・・4/8   4/12   4/13

 【カレンダー】
   B         C       D          E         F        G         H
 1 月        火      水         木        金       土        日
 2 4/1       4/2     4/3        4/4       4/5      4/6       4/7
 3 
 4 

 カレンダーシートのB3セルに、

 =LET(t,
  VSTACK(
   FILTER(打合せシート!$B2:$B5,打合せシート!$I2:$I5=カレンダー!B2,""),
   FILTER(打合せシート!$B2:$B5,打合せシート!$J2:$J5=カレンダー!B2,""),
   FILTER(打合せシート!$B2:$B5,打合せシート!$K2:$K5=カレンダー!B2,"")
  ),
  FIlTER(t,t<>"",""))

 ここで、B3の下にスピルして該当の場所が出力されると思います。
 それが確認できたら、フィルハンドルを右へドラッグしてください。
 下記のような結果になると思います。

   B         C       D          E         F        G         H
 1 月        火      水         木         金       土        日
 2 4/1       4/2     4/3        4/4        4/5      4/6       4/7
 3 打合せ室1        打合せ室3 打合せ室2         打合せ室1  
 4 打合せ室2                                      打合せ室3  

(hatena) 2024/04/10(水) 15:06:31


大変申し訳御座いません。
バージョンExcel2019でした。。。
(neo C) 2024/04/10(水) 15:36:26

 Excel2019ならVSTACKは使えませんね。
 他の方の回答をお待ちください。

 ちなみに最初のやりたいことの結果は上記の私の回答のものでよろしいですか。
(hatena) 2024/04/10(水) 16:21:48

>ちなみに最初のやりたいことの結果は上記の私の回答のものでよろしいですか。

 正しくの結果です。

SMALL関数で2番目のヒットした値を抽出できましたが、
検索する列が多いと、あんまり望んだ結果にはならなかったです。
(neo C) 2024/04/10(水) 17:08:51


 >検索する列が多いと

 実際は、何列まであるのですか?

(半平太) 2024/04/10(水) 17:32:29


    B   C   D   E   F   G   H 
1 月曜 火曜 水曜 木曜 金曜 土曜 日曜 
2  4/1  4/2  4/3  4/4  4/5  4/6  4/7 
3 室1    室3 室2    室1    
4 室2             室3    
5                      
6  4/8  4/9 4/10  4/11 4/12 4/13 4/14 
7 室4    室2    室4 室3    
8                室4    
9                      

 B3
=IFERROR(INDEX(打合せ!$B:$B,AGGREGATE(15,6,ROW($2:$5)/(打合せ!$I$2:$Z$5=LOOKUP(10^9,B$1:B2)),ROW()-MATCH(10^9,B$1:B2))),"")
右方向・→下方向・↓
B3:H5をコピーしてB7に貼り付け、B11に貼り付け、...
(んなっと) 2024/04/10(水) 17:33:47

半平太 さんコメありがとうございます。

>実際は、何列まであるのですか?

 実際の打合せシートは、I列〜T列までの12列です。

んなっと さんコメありがとうございます。

 式ありがとうございます。後ほど、試してみます。
(neo C) 2024/04/10(水) 17:48:47


んなっとさん お教え頂いた、

> B3
  =IFERROR(INDEX(打合せ!$B:$B,AGGREGATE(15,6,ROW($2:$5)/(打合

    せ!$I$2:$Z$5=LOOKUP(10^9,B$1:B2)),ROW()-MATCH(10^9,B$1:B2))),"")

ですが、イメージ通りの結果得られました。ありがとうございます。

申し訳無いのですが、少し式の内容をお教え頂きたいです。

カレンダーのレイアウトを少し変更して、
B5セルからにしたら、全く違う結果が得られました。
自分でも色々試したのですが、分かりませんでした。
B5セルから開始する場合、どこを変更すれば良いのでしょうか?

  B5

    =IFERROR(INDEX(打合せ!$B:$B,AGGREGATE(15,6,ROW($4:$7)/(打合 
     せ!$I$2:$Z$5=LOOKUP(10^9,B$3:B4)),ROW()-MATCH(10^9,B$3:B4))),"")

(neo C) 2024/04/11(木) 11:14:40


 B5
=IFERROR(INDEX(打合せ!$B:$B,AGGREGATE(15,6,ROW($2:$5)/(打合せ!$I$2:$Z$5=LOOKUP(10^9,B$1:B4)),ROW()-MATCH(10^9,B$1:B4))),"")
(んなっと) 2024/04/11(木) 11:52:02

遅くなりました。
完璧にイメージ通りの結果でした。
ありがとうございます!

(neo C) 2024/04/11(木) 16:39:25


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.