最長連続出現数(ランレングス)の算出解答
エクセル練習問題解答ページです。
エクセル練習問題
| 担当 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 最大連続数 |
| a | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||||||||
| b | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |||||||||||
| c | ○ | ○ | ○ | ○ | ○ | ○ | |||||||||||||
| d | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
※スピルは任意。数式が完成すればスピルにするのは簡単なので。
シンキングタイム
シンキングタイム終了
ここで、じっくり勉強して下さい。
エクセル練習問題解答
- 連続区間の検出 (データ配列)
IF(B2:S2="○",COLUMN(B2:S2)):セルが「○」の場合、そのセルの列番号を出力します。これは連続している「○」の位置を示す「データ配列」となります。 - 区切り位置の特定 (区間配列)
IF(B2:S2<>"○",COLUMN(B2:S2)):セルが「○」ではない(空欄または他の文字)場合、そのセルの列番号を出力します。これは「○」の連続が途切れる位置を示す「区間配列」(または境界)となります。 - 連続数のカウント (FREQUENCY)
FREQUENCY(データ配列, 区間配列):FREQUENCY関数は、データ配列の各要素が区間配列のどの区間に収まるかをカウントします。
結果として、データ配列(「○」の位置)が、区間配列(「○」以外の位置)によって区切られたそれぞれの連続区間の長さ(連続数)を返します。 - 最大値の取得 (MAX)
MAX(...):返された連続数のリストから最大の数を取り出し、最大連続数とします。
- 累積カウンターの定義 (SCAN & LAMBDA)
SCAN(初期値, 範囲, LAMBDA関数):SCAN関数は、指定された範囲(B2:S2)を最初から最後まで順に処理し、累積値を保持しながらすべての途中の結果を配列で返します。
LAMBDA(a,b, ...):ここで、aは前のセルの累積値、bは現在のセルの値です。 - 連続数の計算ロジック
IF(b="", 0, a+1):
もし現在のセルbが空欄(「○」ではない)であれば、連続が途切れたとみなし、累積値aを**0**にリセットします。
もし現在のセルbが**「○」であれば、前の累積値aに1**を加えて、連続数をカウントし続けます。 - 連続数の配列の取得
SCAN関数は、0, 1, 2, 3, 0, 1, 2, ... のように、各セルにおける現在の連続数の配列を返します。 - 最大値の取得 (MAX)
MAX(...):この配列の中で最大の数値を取り出し、最大連続数とします。
- フラグの文字列化 (TEXTJOIN & IF)
IF(B2:S2="○","a","|"):B2:S2の範囲を走査し、「○」であれば連続を表す記号として**aに、「○」でなければ区切り文字として|**に変換します。
TEXTJOIN("",TRUE, ...):この配列を結合し、a a a | | a a a a a | ... のような一本の文字列を作成します。(例: aaa||aaaaa|...) - 連続区間の分割 (TEXTSPLIT)
TEXTSPLIT(..., "|"):作成した文字列を区切り文字の**|**で分割します。結果、連続したaの塊(例: aaa, aaaaa, aなど)を要素とする配列ができます。 - 各区間の長さの取得 (LEN)
LEN(...):分割された各文字列(aの塊)の文字数(長さ)を求めます。これがそれぞれの連続数となります。 - 最大値の取得 (MAX)
MAX(...):得られた連続数のリストから最大の数値を取り出し、最大連続数とします。
この手法は、「○」が連続する部分を特定しやすい文字(aなど)に置き換え、連続が途切れる部分を区切り文字(|)に置き換えることで、問題を文字列の処理に置き換えています。
※本記事の作成にあたっては随所で生成AIを活用しています。全て最終的に人間が確認した後に掲載しています。
同じテーマ「エクセル練習問題解答」の記事
エクセル試験1:曜日別の平均客単価解答
エクセル試験2:所得税の計算解答
エクセル試験3:月間の所定労働時間解答
指定日付の有効最新マスタ一覧(履歴マスタ)解答
スピルの基本練習と最新関数解答
入力規則とスピルと最新関数解答
日別データから欠損月を追加して年月集計解答
偶数月に前月分と合わせて2か月分を受け取る解答
最長連続出現数(ランレングス)の算出解答
実績/予算ごとの3年間通算累計を出力解答
数値を記号の積み上げでグラフ化する(■は10、□は1)解答
新着記事NEW ・・・新着記事一覧を見る
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門
- ホーム
- エクセル全般
- エクセル練習問題解答
- 最長連続出現数(ランレングス)の算出解答
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
