[[20250922114147]] 『BYROW(C2:F5,LAMBDA(r,TAKE(FILTER(r,r<>』(訓練中) ページの最後に飛ぶ

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

| 全文検索 | 過去ログ ]

 

『BYROW(C2:F5,LAMBDA(r,TAKE(FILTER(r,r<>』(訓練中)

	A列	B列	C列	D列	E列	F列
1	名称	直近	26回	25回	24回	23回
2	あ		89	80	90	91
3	い			146	135	
4	う		106		104	
5	え				77	

空欄の列を除いた数値を返す関数
を質問した者です。

訓練中なので、
BYROW(C2:F5,LAMBDA(r,TAKE(FILTER(r,r<>""),1,1)))
について以下の通り私なりに解説してみたのですが、
このような解釈で良いかどうか教えていただけないでしょうか。

お手数おかけいたしますが、よろしくお願いいたします。

BYROWで、
C2:F2
C3:F3
C4:F4
C5:F5
と順番に、変数「r」に代入していく。

FILTERで
C2:F2(変数「r」)
という配列の中で
C2:F2(変数「r」)<>""
がTrueの物を抽出したもの(配列)を返す。
(2行目は、89と80と90と91という値の配列)
(3行目は、146と135という値の配列)
(4行目は、106と104という値の配列)
(5行目は、77という値の配列)

TAKE
でFILTERの戻り値(配列)の「行が1つ目、列が1つ目」の値を返す。

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


 あってます
(´・ω・`) 2025/09/22(月) 14:49:09

ありがとうございます。

この掲示板の皆様のご協力で少しずつ
新しいワークシート関数ができるようになってきています。

ご回答くださる皆様に感謝いたします。
(匿名) 2025/09/22(月) 15:22:24


 既に適切なコメントをいただいています。蛇足で留意点をコメントするなら下記のようなことです。

 正確に言うと、Takeは先頭からいくつ取るかを指定するものなので、
 この場合は無関係ですが、2を与えると2番目だけでなく、2番目までの配列が返ることに注意して下さい。
 また、負数を与えると最後尾から何個かを取るという意味になります。
 起点が固定されているということです。

 また、TAKE(FILTER(r,r<>""),1,1)のところは、
 TAKE(FILTER(r,r<>""),,1)としてもいいようです。このほうが意図を表していそうな気もします。

 その意味ではCHOOSECOLSも利用できると思います。

(xyz) 2025/09/22(月) 15:29:43


行が1つ目、列が1つ目」は
私の書き方が悪かったですね。

>2を与えると2番目だけでなく、2番目までの配列が返ることに注意して下さい。
こちらは、Takeだけでどのようなものが返ってくるかを
いくつも試してみたので、理解できています。

>負数を与えると最後尾から何個かを取るという意味になります。
こちらは知りませんでした。
こちらも、でたらめなデータでいくつか試して
理解することができました。

追加情報をくださり、
本当にありがとうございました。
(訓練中) 2025/09/22(月) 20:25:39


コメント返信:

[ 一覧(最新更新順) ]


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