『重複する日付のある抽出』(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
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
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.