[[20250624121559]] 『重複する日付のある抽出』(gag) ページの最後に飛ぶ

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

| 全文検索 | 過去ログ ]

 

『重複する日付のある抽出』(gag)

 お世話になります。
下記の「台帳」のようにA列に「名前」が並び
1行目に「行先」が決められているとします。
行く日が決まると空白セルに「日付」を入力
している状態が下記の台帳でこれから空白が
埋まっていくものとします。
 やりたいことは、「日付」が入力されると
「抽出結果」の様に「日付」でソートされて
名前と行先が並ぶようにしたいです。
※日付は重複するときがあります。

 よろしくご教授ください。

台帳

  |  A  |  B |  C |  D |  E |

 1  |        | 高知   |  愛媛   |  香川  |  徳島  |

 2  | 佐藤  | 7/1   |         |        |  7/2   |

 3  | 鈴木  |        |  7/10   |        |        |

 4  | 高橋  |        |   7/2   |        |   7/4  |

 5  | 田中  |        |   7/3   |  7/4   |      |

抽出結果

7/1 佐藤 高知

7/2 佐藤 徳島

7/2 高橋 愛媛

7/3 田中 愛媛

7/4 高橋 徳島

7/4 田中 香川

7/10 鈴木 愛媛

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


やり方は色々ですが

 =LAMBDA(見出し1,見出し2,値,LET(
    日付,TOCOL(値,1),
    名前,TOCOL(IF(値<>"",見出し1,NA()),3),
    行先,TOCOL(IF(値<>"",見出し2,NA()),3),
    結合,HSTACK(日付,名前,行先),
    SORT(結合,1,1)
 ))(A2:A5,B1:E1,B2:E5)
(d-q-t-p) 2025/06/24(火) 14:21:30

 ご回答ありがとうございます。
ただ、例題にはうまく結果が出たのですが…
私には難しくて応用が出来ませんでした。
能力が低くてすみません。
(gag) 2025/06/24(火) 16:58:19

横からですが、気になったので。

A2:A5 ←名前が入力されている範囲(例なら佐藤〜田中まで)
B1:E1 ←行先が入力されている範囲(例なら高知〜徳島まで)
B2:E5 ←日付を入力する予定の範囲

上記部分を実際の表の、それぞれ対応する範囲に変更するだけの様に思いますが・・・
実際の表はレイアウトが違うということでしょうか?
それならそれで、実際のレイアウトを挙げた方が良いのではないでしょうか?
(コメ) 2025/06/24(火) 19:18:15


 =LAMBDA(見出し1,見出し2,値,
    LET(
        日付,TOCOL(値,1),
        名前,TOCOL(IF(値<>"",見出し1,NA()),3),
        行先,TOCOL(IF(値<>"",見出し2,NA()),3),
        結合,HSTACK(日付,名前,行先),
        SORT(結合,1,1)
    )
 )(A2:A5,B1:E1,B2:E5)
という式を説明します。

 ■
 LAMBDA(見出し1,見出し2,値,
 は関数を定義するもので、見出し1,見出し2,値の3個の引数(ひきすう)をもとに、
    LET(
        日付,TOCOL(値,1),
        (中略)
        SORT(結合,1,1)
    )
 という結果(配列)を返す関数です。LET関数のなかはあえて説明しません。   
 ■
 そうして定義した関数に、
 A2:A5, B1:E1, B2:E5 という実引数(じつひきすう;実際の引数)を与えています。
 ■
 ですから、応用というのは、最後の行の実際の引数を正確に与えることに尽きます。
 コメさんから指摘があったとおりです。

(xyz) 2025/06/24(火) 23:07:30


 連絡が本当に遅くなり申し訳ありません。
何度も触ることで何とか使うことができるようになりました。
 ありがとうございます。

 本来追加のお願いはご法度なのかもですが、利用してみると
不都合がでてしまい何とかならないかと再度ご教授願いたく
宜しくお願いします。

 追加したいのは、指定日(基本は「本日」)を入れるセルを
用意してその日を過ぎたものは抽出しない様にしたいのです。

 前回教えて頂いた式を元に追加(変更)していただけると
非常にうれしいです。もちろん、別式でも構いません。
 よろしくお願いします。
(gag) 2025/07/17(木) 10:28:49


こいつ調子がえーなー。
前回お礼もなしにほったらかしといて、追加のお願いとは?
なんでそんなことできんの? 育ちか?

(無視していい) 2025/07/17(木) 10:37:22


今、過去ログ「gag」で検索してみたけど、質問して解答もらったあとシカトする常習犯じゃん!!
こんな失礼なやつに協力する必要ないですよ、皆さん。
悪いことは言いません。またスルーされるだけ!!!

(無視していい) 2025/07/17(木) 10:47:51


 調子よくしているつもりはないのですが…申し訳ありません。
いつも助けて頂いて本当に助かっております。
(無視していい)さんは無視してください。
失礼いたしました。
(gag) 2025/07/17(木) 10:52:52

>いつも助けて頂いて本当に助かっております。
であれば、「動きました」とか「有難うございました」とかの一言がなぜ言えない!?
それをわが国では「調子がいい」と言うんだよ。

今頃
>失礼いたしました。
では遅すぎるっちゅーねん!!!

(無視していい) 2025/07/17(木) 10:58:58


過去の質問に追加で質問するより、URLを付けて新規に質問し直したほうが見てもらいやすいですよ。
私は、このサイトを頻繁には見ていないので気付くのが遅れることがあります。

LAMBDAで関数化しているので最後にもう一つオプション引数の「本日」を追加しました。

 =LAMBDA(見出し1,見出し2,値,[本日],LET(
    日付,TOCOL(値,1),
    名前,TOCOL(IF(値<>"",見出し1,NA()),3),
    行先,TOCOL(IF(値<>"",見出し2,NA()),3),
    結合,HSTACK(日付,名前,行先),
    抽出,FILTER(結合,日付<>本日),
    SORT(抽出,1,1)
 ))(A2:A5,B1:E1,B2:E5,TODAY())

これでどうですか?
(d-q-t-p) 2025/07/18(金) 09:50:30


除外する日が複数ある場合にも対応させるなら G列に除外する日を入力しているものとして

 =LAMBDA(見出し1,見出し2,値,[除外日],LET(
    日付,TOCOL(値,1),
    名前,TOCOL(IF(値<>"",見出し1,NA()),3),
    行先,TOCOL(IF(値<>"",見出し2,NA()),3),
    結合,HSTACK(日付,名前,行先),
    抽出,FILTER(結合,BYROW(日付<>TOROW(除外日),AND)),
     SORT(IFERROR(抽出,結合),1,1)
 ))(A2:A5,B1:E1,B2:E5,G:.G)
(d-q-t-p) 2025/07/18(金) 10:03:45

私も質問者の過去ログ見ましたけどひどいですよね。ほんと調子よすぎ。
そんな人を手助けする d-q-t-pさんは、よっぽどのお人好しか承認欲求お化けか?

(あかみの) 2025/07/18(金) 10:10:57


 質問者に対する批判ならまだしも、回答者であるd-p-t-p さんへの
 侮辱と捉えられかねない発言は控えた方がいいかと
 →あかみのさん
(デボラ) 2025/07/18(金) 21:36:22

 >指定日(基本は「本日」)を入れるセルを
用意してその日を過ぎたものは抽出しない

 とあるので、もしかしたら「日付>本日」とした方が、質問者の希望に沿うのかもしれません。
指定日を任意のセルに入力するとしたら、
d-q-t-pさんが1つ目に提示されている数式のTODAY()を任意のセル番地に変更です。
※指定日は日付と認識できる形式で。

 別の話になりますが、
今回の質問内容の成型なら、数式が思いつかなくても、
PowerQueryを利用するという手もあると思います。
求められていないかもしれませんので、紹介だけ。

 列のピボット解除
http://officetanaka.net/excel/function/GetAndTransform/08.htm

 セルの値でクエリを変化させる(パラメータクエリの基本)
http://officetanaka.net/excel/function/GetAndTransform/32.htm

 これらの機能を利用すれば、希望の形に成型できます。
(コメ) 2025/07/19(土) 14:45:07

 確認が遅くなり本当に申し訳ありません。
d-p-t-p さん、ご回答下さりありがとうございます。
当方の対応の悪さが皆様の感情を逆なでしていますね。
どう言い訳しても許していただけないようで猛省いたします。
 この掲示板の使い方はともかく回答いただいた方への
感謝への配慮が足らなかったと今後の機会を頂けるなら
気を付けるように致します。

 今回のご回答に関しまして当方の実力の足らなさで
なかなかに応用が出来ず(情けないですが…)
現在も格闘中です。しかし、前回のご回答分も
時間はかかりましたがなんとか利用できる所まで来ましたので
今回分も頑張って理解したいと思います。
 PowerQueryの利用もお勧め頂いていますが、年も寄っていまして
新しいことの理解が厳しい状態です。教えて頂いた式を
頑張って利用したいと思います。
 今回はわがままに最後まで付き合っていただきありがとうございました。
 

 
(gag) 2025/07/24(木) 14:27:19


コメント返信:

[ 一覧(最新更新順) ]


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