LAMBDA以降の新関数の問題集
2022年にLAMBDA関数とLAMBDAヘルパー関数群、
そして、TEXT処理の関数群と、配列操作関数群が追加となりました。
LAMBDA関数とヘルパー関数、配列操作関数、テキスト操作関数、これらの基礎から応用までの問題集です。
まだまだ実務で使う日は来ないと思いますし、実務で使えるような定型化した使い方ができるようになるかも未だ分かりません。
しかし、それを見極めるためには追加された新関数を知る必要があります。
新関数がどのような場面で、どのように使う事が出来るかを確かめるために練習したことの履歴です。
本ページは、この出題ツイートのまとめです。
目次
LAMBDA関数とヘルパー関数編
LAMBDA踊るぞ編2
SCAN編
MAP編
REDUCE編
山手線営業の旅編
BYROW,BYCOL編
解答・解説込みのページはこちら から、LAMBDA以降の新関数の問題と解説(ヘルパー関数編)
配列操作関数編
好きな関数を使ってくれ編
いろんな関数を使ってね編
魔球編
豚が木に登れば落ちることもある編
たまには100点とってみたいものだ編
これは何と言う処理なんだろ編
数字は嫌いなのだ編
外堀から埋めていくぞ編
なぜわざわざそうしたいのか編
かっこつけてんじゃないよ編
頭の体操だけど新関数の出番はあるか?編
定番だけど出してなかったよね編
解答・解説込みのページはこちら から、LAMBDA以降の新関数の問題と解説(配列操作関数編)
LAMBDA踊るぞ編
A2:A11は消費税込み金額です。
税抜き本体価格を計算してください。
B2に数式を入れB11までスピルさせます。
LAMBDAに対して引数(A2:A11,10%)を与えてください。。
税抜き処理は(1+税率)で割り算した結果を円単位に切り上げ。
↑税込み金額/(1+税率)↑
※LAMBDAの練習です。
※ A2:A11は消費税込み金額です。
税抜き本体価格を計算してください。
B2に数式を入れB11までスピルさせます。
LAMBDAに引数(A2:A11,10%)を与えてください。
LAMBDA踊るぞ編2
A2:A11は消費税込み金額です。
B2に数式を入れてD11までスピル
B列:税抜き金額
C列:消費税(税抜き金額×税率※円未満切り捨て)
D列:B列税抜き金額+C列消費税-A列税込み金額
数式は、
B2=LAMBDA(...)(A2:A11,10%)
このように作成。
※LAMBDA練習&HSTACKもね。
SCAN編
A列B列は、ある着順の前後の着順を示してします。
A列の馬の次の着順は同一行B列の馬です。
例).プレサージュリフト → ライラック → ウインエクレール
A2:B16を入力することで、C2以下に全着順通りに並べてください。
※データは画像ALT
競争馬名 | 次の着順の馬 | 着順 |
プレサージュリフト | ライラック | |
アートハウス | エグランタイン | |
サウンドビバーチェ | ストーリア | |
ライラック | ウインエクレール | |
ストーリア | プレサージュリフト | |
ウインエクレール | ウォーターナビレラ | |
ウォーターナビレラ | エリカヴィータ | |
タガノフィナーレ | ブライトオンベイス | |
メモリーレゾン | アートハウス | |
ナミュール | スターズオンアース | |
ラブパイロー | タガノフィナーレ | |
スタニングローズ | ナミュール | |
スターズオンアース | メモリーレゾン | |
エグランタイン | サウンドビバーチェ | |
エリカヴィータ | ラブパイロー |
MAP編
A1=SEQUENCE(10,10)
素数は特別らしい。
どう特別かわからないので、前後の数値と素数だけ残して他の数値を消してみることにしました。
23は素数なので前後の22,24と共に残す。
25,26,27は自身も前後も素数ではないので消します。
※素数判定は適当に探して😅
REDUCE編
500円玉貯金をすることにしました。
月曜は500円、火曜は1,000円,...金曜は2,500円
そして土日は前日の貯金額の10%(500円単位で切り捨て)を使う事にします。
開始日を入力し、その年の年末大晦日終了時点でいくらの貯金がたまっているか計算してください。
※ALTに補足
画像E:Fは作業セルでの検算です。
月曜:500
火曜:1000
水曜:1500
木曜:2000
金曜:2500
そして、土日は前日貯金額の10%を500円単位(500円未満切り捨て)で使うという事です。
山手線営業の旅編
山手線沿線を営業して回りました。
秋葉原を出発、それぞれの駅で下車して営業して、再び同じ駅に乗ります。
降車駅ごとに清算します。
それでは運賃の一覧を出力してください。
※画像参照
※データは各画像ALT
※サンプルは正しいか不明😅
山手線って安いのね😇
自分では書いたつもりになってました。
東京の人は知ってるかもだけど…
※1km未満は1km単位で切上です。
出発駅 | 秋葉原 | 運賃 |
清算降車して、 再び同じ駅で乗車 |
御徒町 | |
日暮里 | ||
田端 | ||
駒込 | ||
池袋 | ||
新宿 | ||
代々木 | ||
原宿 | ||
田町 | ||
新橋 | ||
秋葉原 |
出発駅 | 到着駅 | 距離(km) |
東京 | 神田 | 1.3 |
神田 | 秋葉原 | 0.7 |
秋葉原 | 御徒町 | 1 |
御徒町 | 上野 | 0.6 |
上野 | 鶯谷 | 1.1 |
鶯谷 | 日暮里 | 1.1 |
日暮里 | 西日暮里 | 0.5 |
西日暮里 | 田端 | 0.8 |
田端 | 駒込 | 1.6 |
駒込 | 巣鴨 | 0.7 |
巣鴨 | 大塚 | 1.1 |
大塚 | 池袋 | 1.8 |
池袋 | 目白 | 1.2 |
目白 | 高田馬場 | 0.9 |
高田馬場 | 新大久保 | 1.4 |
新大久保 | 新宿 | 1.3 |
新宿 | 代々木 | 0.7 |
代々木 | 原宿 | 1.5 |
原宿 | 渋谷 | 1.2 |
渋谷 | 恵比寿 | 1.6 |
恵比寿 | 目黒 | 1.5 |
目黒 | 五反田 | 1.2 |
五反田 | 大崎 | 0.9 |
大崎 | 品川 | 2 |
品川 | 高輪ゲートウェイ | 0.9 |
高輪ゲートウェイ | 田町 | 1.3 |
田町 | 浜松町 | 1.5 |
浜松町 | 新橋 | 1.2 |
新橋 | 有楽町 | 1.1 |
有楽町 | 東京 | 0.8 |
下限Km | 上限Km | 金額 |
1 | 3 | 140 |
4 | 6 | 160 |
7 | 10 | 170 |
11 | 15 | 200 |
16 | 20 | 270 |
21 | 25 | 350 |
26 | 30 | 420 |
31 | 35 | 490 |
BYROW,BYCOL編
A2:F12に個人別の5教科(英語、国語、数学、理科、社会)の点数一覧があります。
全科目が平均点以上の人だけをH2以下に一覧出力してください。
※未受験科目は0点として入力するものとします。
※データは画像ALT
そうそうたる受験生ですね・・・
「平均点」とは、各科目ごとの平均点です。
ここからはフリー問題だよ編
10行10列の範囲に、1から100までの重複しない数値をランダムに配置してください。
ここからは関数知識を総動員。
とはいえLAMBDA以降の関数なら割と簡単にできる問題にしたいなと…
好きな関数を使ってくれ編
テーブルが3つあります。
A:Eは「TBL売上」
G:Iは「TBL取引先M」
K:Lは「TBL商品M」
「TBL売上」に「取引先名」と「商品名」を付加してN2以降に出力してください。
N1:T1の見出しおよび列表示形式は設定済。
※データは画像ALT(テーブル化してね)
練習…
いろんな関数を使ってね編
テーブルが2つあります。
A:Eは「TBL旧」
G:Iは「TBL新」
「TBL旧」と「TBL新」をidで結合し、違いのあるものだけをI2以下に出力。
「TBL旧」のみ:「削除」
「TBL新」のみ:「新規」
両方で内容違い:「変更」
※データは画像ALT(テーブル化してね)
id | 取引先名 | 住所 | id | 取引先名 | 住所 | id | 取引先名 | 住所 | 区分 | ||
S001 | 取引先01 | 東京都 | S001 | 取引先01 | 東京都 | ||||||
S002 | 取引先02 | 大阪府 | S003 | 取引先03 | 神奈川県 | ||||||
S003 | 取引先03 | 神奈川県 | S004 | 取引先04 | 宮崎県 | ||||||
S004 | 取引先04 | 宮城県 | S005 | 取引先05 | 福岡県 | ||||||
S006 | 取引先06 | 愛知県 | S006 | 取引先06 | 愛知県 | ||||||
S007 | 取引先07 | 京都府 |
魔球編
2つのテーブル、
A:Cは「TBL旧」
E:Gは「TBL新」
「TBL旧」と「TBL新」をidで横に結合し、下記区分を付加してI2以下に出力。
TBL旧のみ:「削除」
TBL新のみ:「新規」
内容違い:「変更」
※テーブル内id重複なし
※結果は画像参照
※データはALT(テーブル化して)
id | 取引先名 | 住所 | id | 取引先名 | 住所 | id | 取引先名 | 住所 | id | 取引先名 | 住所 | 区分 | ||
S001 | 取引先01 | 東京都 | S001 | 取引先01 | 東京都 | |||||||||
S002 | 取引先02 | 大阪府 | S003 | 取引先03 | 神奈川県 | |||||||||
S003 | 取引先03 | 神奈川県 | S004 | 取引先04 | 宮崎県 | |||||||||
S004 | 取引先04 | 宮城県 | S005 | 取引先05 | 福岡県 | |||||||||
S006 | 取引先06 | 愛知県 | S006 | 取引先06 | 愛知県 | |||||||||
S007 | 取引先07 | 京都府 |
豚が木に登れば落ちることもある編
A:C列の短文の全組み合わせをE1以下に出力してください。
添付画像は結果の上部のみになります。
A:C列は増減対応として、添付2枚目のように列全体を指定してください。
※完成文章の意味は通じなくても良い🤣
※一応データはALT
犬が | 歩けば | ただの散歩 |
猫が | 木に登れば | 叱られる |
豚が | 穴を掘れば | 落ちることもある |
壁を登れば |
たまには100点とってみたいものだ編
A2:F12に個人別の5教科(英語、国語、数学、理科、社会)の点数一覧があります。
全科目共通で点数ベスト10(順位付けて)を出力してください。
同点は「英語>国語>数学>理科>社会 」の順。
完全同順位は順番は問いません。
※データは画像ALT
氏名 | 英語 | 国語 | 数学 | 理科 | 社会 | 順位 | 氏名 | 科目 | 点数 | |
伊藤 博文 | 84 | 96 | 63 | 70 | 53 | |||||
黒田 清隆 | 68 | 44 | 47 | 57 | 42 | |||||
三條 實美 | 74 | 71 | 56 | 75 | 82 | |||||
山縣 有朋 | 44 | 42 | 55 | 77 | 47 | |||||
松方 正義 | 65 | 99 | 67 | 87 | 75 | |||||
大隈 重信 | 51 | 55 | 62 | 47 | 92 | |||||
桂 太郎 | 76 | 73 | 89 | 81 | 100 | |||||
西園寺 公望 | 100 | 79 | 66 | 53 | 97 | |||||
山本 權兵衞 | 91 | 67 | 83 | 75 | 74 | |||||
寺内 正毅 | 99 | 57 | 58 | 70 | 59 | |||||
原 敬 | 54 | 50 | 92 | 47 | 85 |
これは何と言う処理なんだろ編
A1:A5に入っている文字列は、
「文字列-数値」
となっています。
最後の「-」の後ろは必ず2桁以内の数値となっています。
添付画像のように、最後の数値回数で文字列を縦に繰り返し、「-」に続けて順番を01から2桁数値で振ってください。
数字は嫌いなのだ編
A1:A3は文字数値混在の文字列です。
半角数字のみ「-」に置換してください。
そして空白TRIMと同じ要領で「-」の連続は1つに、最初と最後の「-」は消す。
※画像参照。
問題1:スピル不要
問題2:余裕があればスピルさせて。
外堀から埋めていくぞ編
A1:I9に数列が入っています。
引数として、(範囲,レベル)を与えます。
範囲:A1:I9
消すレベル:1なら一番外側だけ、2なら外枠2周分
※添付画像参照
※レベル不正指定は気にしなくて良い。
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
1 | 2 | 3 | 3 | 3 | 3 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 4 | 4 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 5 | 4 | 3 | 2 | 1 |
1 | 2 | 3 | 4 | 4 | 4 | 3 | 2 | 1 |
1 | 2 | 3 | 3 | 3 | 3 | 3 | 2 | 1 |
1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
なぜわざわざそうしたいのか編
A:B列にテーブル(名前は任意)があります。
A列に1か月分(何日でも)の日付、B列に数値が入っています。
添付画像のように、日付と数値で2段にして1週間(月~日)で折り返してください。
※8/1開始も確認
※表示形式は不問
※データは画像ALT
日付 | 数値 | 月 | 火 | 水 | 木 | 金 | 土 | 日 | |
2022/10/01 | 113 | ||||||||
2022/10/02 | 108 | ||||||||
2022/10/03 | 116 | ||||||||
2022/10/04 | 617 | ||||||||
2022/10/05 | 909 | ||||||||
2022/10/06 | 924 | ||||||||
2022/10/07 | 807 | ||||||||
2022/10/08 | 836 | ||||||||
2022/10/09 | 949 | ||||||||
2022/10/10 | 393 | ||||||||
2022/10/11 | 454 | ||||||||
2022/10/12 | 595 | ||||||||
2022/10/13 | 659 | ||||||||
2022/10/14 | 734 | ||||||||
2022/10/15 | 164 | ||||||||
2022/10/16 | 478 | ||||||||
2022/10/17 | 100 | ||||||||
2022/10/18 | 254 | ||||||||
2022/10/19 | 994 | ||||||||
2022/10/20 | 852 | ||||||||
2022/10/21 | 365 | ||||||||
2022/10/22 | 242 | ||||||||
2022/10/23 | 765 | ||||||||
2022/10/24 | 983 | ||||||||
2022/10/25 | 535 | ||||||||
2022/10/26 | 801 | ||||||||
2022/10/27 | 577 | ||||||||
2022/10/28 | 838 | ||||||||
2022/10/29 | 847 | ||||||||
2022/10/30 | 366 | ||||||||
2022/10/31 | 227 |
かっこつけてんじゃないよ編
A1セルの文字列から、複数の括弧()内の文字列を取り出して横に展開してください。
※括弧は全角半角問わない。
※括弧が正しく対になっていることを基本として、括弧が正しく対になっていない場合の結果については特に限定しません。
頭の体操だけど新関数の出番はあるか?編
シートの任意の範囲を指定します。
その範囲内での奇数行は奇数列のみ、偶数行は偶数列のみ合計します。
行列数の判定はシート上のセル番地ではなく、指定範囲内の相対位置で判定してください。
※添付画像の黄色セルの合計
※データはALT
11 | 40 | 46 | 4 | 22 | 29 | 52 | 70 | 15 |
27 | 39 | 24 | 8 | 43 | 21 | 20 | 33 | 58 |
38 | 17 | 34 | 63 | 67 | 23 | 79 | 19 | 66 |
60 | 25 | 50 | 75 | 73 | 57 | 64 | 71 | 37 |
65 | 77 | 14 | 44 | 59 | 26 | 16 | 6 | 18 |
74 | 54 | 5 | 13 | 28 | 81 | 56 | 36 | 80 |
10 | 7 | 30 | 32 | 49 | 3 | 78 | 76 | 42 |
61 | 51 | 68 | 2 | 45 | 31 | 53 | 1 | 47 |
72 | 69 | 9 | 35 | 62 | 12 | 48 | 41 | 55 |
定番だけど出してなかったよね編
A1セルの文字列をC:D列の文字列で置換してください。
置換において置換対象が複数ある場合の数式です。
C:D列の置換一覧は随時増える事が前提
縦スピルは任意と言う事にしておきます。
※サンプル文字列は一応ALTに
web3時代に合わせてDXを推進するためリスキリングが必要 | 置換前 | 置換後 | |
DX | IT | ||
リスキリング | 再教育 | ||
web3 | 分散型インターネット |
同じテーマ「エクセル入門」の記事
縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS)
直積(クロス結合、交差結合)とピボット解除
複数の文字列を検索して置換するSUBSTITUTE
LAMBDA以降の新関数の問題集
LAMBDA以降の新関数の問題と解説(ヘルパー関数編)
LAMBDA以降の新関数の問題と解説(配列操作関数編)
PY関数(Pythonコードをセル内で実行)
GROUPBY関数(縦軸でグループ化して集計)
PIVOTBY関数(縦軸と横軸でグループ化して集計)
イータ縮小ラムダ(eta reduced lambda)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.ブック・シートの選択(Select,Activate)|VBA入門
10.条件分岐(Select Case)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。