いきなり答える備忘録

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

TAKE の検索結果:

(Excel)口数に応じた抽選の方法

…ます。 J3セル =TAKE(UNIQUE(I3#),E3) スピル演算子(#)を使っていますが「=TAKE(UNIQUE(I3:I16),E3)」としても同じです。 UNIQUE関数を使うことでI列の氏名の重複が除かれ初出順で抽出されることがポイントです。これで冒頭に記した抽選の考え方に沿った結果が得られます。第1位当選者(小川)を除いたうえで累計値を割り振りし直して再抽選…とした方が納得感があるかもしれませんが、直近で見つかる別の者を2位、3位…と決めていった方が早いとい…

(Excel)連動して選択肢が変わるプルダウンの作り方

…B$3:$D$7),TAKE(x,COUNTA(x))) XLOOKUP関数で抽出した列にLET関数でxと名付け、TAKE関数とCOUNTA関数を使いxのうち空白以外のものを抽出しています。ここでもXLOOKUP関数の第1引数を「$G$3」としないよう注意してください。 なおTAKE/COUNTA関数のはたらきですが、正確には「xに含まれる値の数をカウントし、上から順にその行数を抽出している」ので左の表(店舗名)の途中に空白が含まれる場合にはおかしな結果になります。 また、T…

(Excel)重複値(グループ)ごとに連番を振る方法

…法 COUNTIF/TAKE関数を使う方法 COUNTIF関数と絶対参照を使う方法 ここではB列に入力されている3種類の値のそれぞれについて、1から連番を振りC列に表示するものとします。 まずC3セルに「=COUNTIF(B$3:B3,B3)」と入力します。 C3セル =COUNTIF(B$3:B3,B3) B3セルにあるB3セルの値の数を数えているので結果は1となります。 しかし最初の「B$3」という絶対参照がポイントになっています。 式をC12セルまでフィルコピー(セル右…

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

…,,-1),INT(TAKE(a,,-1)/b),MOD(TAKE(a,,-1),b))) ),,1),,-1) 基本的には金額を10000で割った商(小数切捨。以下同様)を求め、その余りを5000で割った商を求め……ということを繰り返しています。 具体的な式の内容ですが、REDUCE関数とLAMBDA関数を使い、「HSTACK("",B3)」をa(の初期配列)、「C2:L2」をbと名付けています。 bのそれぞれの値について、「aの最後のセルを削除し、『aの最後のセルにあった…

(Excel)ナップザック問題を解く(総当たり法)

…BITRSHIFT(SEQUENCE(2^B3-1),SEQUENCE(1,B3,0)),1),HSTACK(OFFSET(B6,,,B3,2),MUNIT(B3))), x ) 必要とする結果はこの段階ですべて得られています。 これにフィルタとソートをかけて転置した結果が最初の画像です。 最後に補足ですが、総当たりですのでアイテムが増えると急激に重くなります。 また、通常全部の組み合わせは要らないと思いますので、さらにTAKE関数を使って必要な数だけに絞るのがよいでしょう。

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

…方法についてです。 TAKE関数を使い、第2引数をマイナスの値にすることで下からn行を抽出できます。 CHOOSEROWS関数の第2引数をマイナスの値にすることで下からn行目だけを抽出できます。{-3,-1}のように配列で指定すれば複数の行を取得できます。 手順 表の下からn行を取得する 表の下からn行目(複数指定可)を取得する 手順表の下からn行を取得する 画像ではTAKE関数を使い、B3:D9の範囲(見出しを含まないことに注意)のうち下から3行を抽出しています。 F3セル…

(Excel)素因数分解をする

…), HSTACK(TAKE(a,,b),e,c/e)))), FILTER(x,x>1) ) 基本的に試し割り法をやっていますが、細かいところはキリがないので要点のみ記したいと思います。 まず2行目の「HSTACK(1,B3)」はこの例では{1,990}となります。これをLAMBDA関数におけるaの初期配列として定義しています。 そして4行目のHSTACK/TAKE関数により「aの右端を配列から削除し、その削除された値(c)の素因数のうち最も小さいもの(e)を配列に加え、さ…