スプレッドシートである表を検索して複数ヒットした場合に1つのセルにまとめて入力する操作について
複数条件の検索がしたかった人
matchに複数条件入れてindexにぶち込む
A14をx座標、J1をy座標と見れば2次元ベクトルを集めたリストを
xy平面に見立てた別シートに各点を写すことができる
ただしリストの中で該当座標にヒットした中の1番上のデータしか拾えない
本題
カレンダーの10月1日のマスにADEの3つの予定を入力したいんだぜ
結果
中身
=if(isna(VLOOKUP(D2,$A$2:$B$50,2,false)),"",textjoin(char(10),TRUE,choosecols(filter($A:$B,$A:$A=D2),2)))
解説
=if( //if(A,B,C)でAがTrueならB、FalseならC isna( //中身がN/AならTrue(該当日付の予定が存在しないパターン) VLOOKUP( //$A$2:$B$50の範囲でD2を探して該当行のk(≧1)列目のデータを返す D2, $A$2:$B$50, 2, false //おまじない ) ), "", //if関数のTrueルート textjoin( //textjoin("A",TRUE,{1,2,3})="1A2A3" char(10), //改行文字 TRUE, //おまじない choosecols( //表を入力としてk(≧1)番目の列を返す filter( //A:Bの表でA列がD2に一致する行全てを表にして返す $A:$B, $A:$A=D2 ), 2 ) ) )
まあ各関数は調べたら出る
実際の用途
スマホからグーグルフォームで日付と予定名を回答してスプレッドシートに集めてカレンダー形式の別シートに各予定が改行されて入力されるようにした
複数条件の複数ヒットに対応・・・?
filterの条件式に&入れたら出来るかもね試してないけど
検索単語
スプレッドシート、エクセル、データ抽出、表を検索、列を抽出、複数結果、1つのセルに
spreadsheet、excel、vlookup、xlookup、index、match、filter、choosecols、chooserows、concat、textjoin