いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

DROP の検索結果:

(Excel)XLOOKUP関数を縦横にスピルさせる

…ます。 H3セル =DROP( REDUCE("",G3:G5,LAMBDA(a,b,VSTACK(a,XLOOKUP(b,B3:B8,C3:E8,"")))), 1) MAP/LAMBDAで済みそうにも見えますがXLOOKUPとの相性が悪く、エラーになってしまいます。 そこでREDUCE/LAMBDAを使っています。VSTACK関数を併用し、G3:G5(=b)の各値に対するXLOOKUP関数の実行結果を縦にスタックしています。 最初の行に無駄な空文字列が残りますので最後にD…

(Excel)TEXTSPLIT関数をスピル(複数のテキストに適用)させる

…ます。 D3セル =DROP(IFNA( REDUCE("",B3:B6,LAMBDA(a,b,VSTACK(a,TEXTSPLIT(b,"☆")))), ""),1) REDUCE/LAMBDA関数を使い初期配列となる空文字にa、処理対象となる配列B3:B6にbという名前を付けています。 あとはbの1セルごとにTEXTSPLITを実行してVSTACK関数によりaに順次スタックしていきます。 各行の列数の違いにより#N/Aエラーが生じるのでIFNA関数で空文字列に変換し、最後…

(Excel)一般化した金種計算の例

…ます。 C3セル =DROP(DROP( REDUCE(HSTACK("",B3),C2:L2, LAMBDA(a,b,HSTACK(DROP(a,,-1),INT(TAKE(a,,-1)/b),MOD(TAKE(a,,-1),b))) ),,1),,-1) 基本的には金額を10000で割った商(小数切捨。以下同様)を求め、その余りを5000で割った商を求め……ということを繰り返しています。 具体的な式の内容ですが、REDUCE関数とLAMBDA関数を使い、「HSTACK("…

(Excel)表の下からn行/n行目を取得する

…されたTAKE関数やDROP関数、CHOOSEROWS関数やCHOOSECOLS関数ではマイナスの値を与えることで「下からn行」とか「右からn列目」といった指定ができるようになっています。表の下からn行目(複数指定可)を取得する 画像ではCHOOSEROWS関数を使い、B3:D9の範囲のうち下から3行目を抽出しています。 F3セル =CHOOSEROWS(B3:D9,-3) 第2引数(抽出する行の位置)を「-3」と指定することで下から3行目だけを抽出しています。 ここでは同じ…

(Excel)クロス結合(直積)を作る

…です。 E3セル =DROP( REDUCE("",B3:B5, LAMBDA(a,b,VSTACK(a,IFNA(HSTACK(b,C3:C6),b)))), 1) 字数こそ最初の例より短いですがちょっとややこしいです。 B3:B5(=b、産地名)の1セルごとに、C3:C6(品目名)の4つのセルをムリヤリHSTACKしています。サイズが合わないので#N/Aエラーのセルが生じますが、IFNAでそこを産地名に変換しています。各産地についてこれを繰り返してVSTACKし、先頭の1…