ツイッター出題回答
数列内の連続偶数のみ順序を入れ替える

ExcelマクロVBAとエクセル関数についての私的雑感
最終更新日:2022-10-12

数列内の連続偶数のみ順序を入れ替える


ツイッターで出題したエクセル数式問題です。


数列があり、その中の偶数の連続部分だけを順番を入れ替えるという問題です。
元は他のアカウントで出された問題なのですが、改めて私から出だししたものになります。


出題ツイート

一応数式が作れたので出題します。
【エクセル問題】
・数字が連続して与えられています。
・その中で連続している偶数は順番を逆にして返す。
※奇数はそのまま。

Excel エクセル問題
https://twitter.com/yamaoka_ss/status/1579780236241428481


引用ツイートでの回答

出題者としての回答

概ね出そろったようなので、私の作成した数式も出しておきます。
ほぼ出題時に作った数式です。
=LAMBDA(数列,
LET(
判定,LAMBDA(x,ISEVEN(x)),
順1,SCAN(1,数列,LAMBDA(x,y,IF(判定(x)=判定(y),x,x+1))),
順2,SCAN(0,数列,LAMBDA(x,y,IF(判定(y),x-1,x))),
SORTBY(数列,順1,1,順2,1))
)(A1:A15)

Excel エクセル問題


考え方として、
順1は、奇数偶数をグループわけして連番。偶数の連続は同じ数値。
順2は、偶数は下降順番、奇数は同値
そして、この順1と順2で元の数列を並べ替え。

Excel エクセル問題

Excel エクセル問題

Excel エクセル問題


その後改良して、
=LET(数,A1:A15,
順,SCAN(1,数,LAMBDA(x,y,x+ISODD(x+y)+ISODD(y)*2)),
SORTBY(数,順,1,ROW(数),-1))
さらに、はけたさん@excelspeedup
の助言を受けて、最終的に完成したのがこちら、
=LET(数,A1:A15,
順,SCAN(1,数,LAMBDA(x,y,x+MOD(x,2)+MOD(y,2))),
SORTBY(数,順,1,ROW(数),-1))


やはり何と言っても、はけたさんのこちらの回答が素晴らしいと思います。
みればなるほど、でもお題を読んでこの数式到達するのはかなり至難だなと思います。
https://twitter.com/excelspeedup/status/1579991154052845571

最終的にこの数式になったようです。

Excel エクセル問題




同じテーマ「ツイッター出題回答 」の記事

成績表(ネ申エクセル)を別表に集計

ツイッターで出題した問題です。ネ申エクセルとなっている成績表を、見やすいマトリックス表に数式で集計する問題です。出題ツイート 「エクセル頭の体操」ネ申エクセル編 画像1枚目の成績表データがあります。さすがにこれでは見づらいし扱いづらいので、2枚目のように集計してください。
年月に対して有効な日だけの入力規則のリスト作成
ツイッターで出題したエクセルの問題です。年月日を別々のセルに入力してもらう場合に、年月によって決定する日の範囲(月の大小や2/29等)を日のセルの入力規則にリストとして設定する問題です。出題ツイート 【エクセル問題】日付・入力規則 C2セルに入力規則のリストを設定してください。
8桁数値が日付として不適切なら赤にする条件付き書式
ツイッターで出題した問題です。日付が8桁数値、つまりyyyymmdd形式で入力されている場合に、その入力されている8桁数値が日付として正しいかどうかを判定し、日付として不適切なら赤文字にする条件付き書式を設定します。出題ツイート 【エクセル問題】日付・条件付き書式 A列に条件付き書式を設定してください。
条件付きの最大値と中央値("A"が2文字の条件)
ツイッターで出したエクセルの問題です。"A"が2文字使われているコードの「最大値」と「中央値」を求める問題です。※中央値は現365のスピルするExcelじゃないと難しいと思います。
日付時刻のマイナス表示に対応する方法
ツイッターで出したエクセルの問題です。日付のマイナス表示についての問題です。日付として計算可能であるマイナス日付を扱う方法についての問題になります。出題ツイート https://twitter.com/yamaoka_ss/status/1559523861149847552 暇な人が多そうなのでw問題を1つ 【エ…
一覧から複数条件(部分一致、範囲)に合致するデータを抽出する
ツイッターで出したエクセルの問題です。一覧表から、複数条件(名称の部分一致、日付や金額の範囲)でデータを抽出する問題です。出題ツイート 出題ツイートへのリンク 【エクセル問題】※定番かもだけどこれが出来ればエクセル使えると言っても怒られない編(長いw) 見た通りです。
構成比を合計しても100%にならないと言われた…
ツイッターで出したエクセルの問題です。構成比のある表で、明細の構成比を合計しても100%にならないと言われた。あなたはどうする? 出題ツイート 出題ツイートへのリンク 【エクセル問題】※定番だけどエクセルは哲学だ編 資料を作成してPDFで上司に渡したら、電卓をたたきだした… 「君、これ100.0%となっているけど、
振込手数料を先方負担にした時の振込金額と手数料の算出
ツイッターで出したエクセルの問題です。振込手数料を先方負担とした場合の振込金額と手数料を算出する問題です。3万円で手数料が変わる場合、3万円を少しだけ超えた金額では、3万円以上の時の手数料を引くと3万円未満になってしまい、当初の手数料と違ってきてしまいます。
脱字メーカー(文字列から1文字削除)
ツイッターで出したエクセルの問題です。誤字脱字は気を付けてもなかなか… 今回はエクセル関数で意図的に脱字を作ろうという問題です。関数は組み合わせかた次第です。出題ツイート 出題ツイートへのリンク 【エクセル問題】※関数は組み合わせだ編 脱字メーカー A列の文字列から1字消した全パターンを出力して下ください。
リーグ表に対戦番号を振る
ツイッターで出したエクセルの問題です。総当たりリーグ戦の表に試合番号を振る問題です。出題の主旨としては、これをスピル一発でやってみましょうと言うものです。出題ツイート ツイートが不調?で2回同じツイートをしました。
数列内の連続偶数のみ順序を入れ替える


新着記事NEW ・・・新着記事一覧を見る

文字列のプロパティ名でオブジェクトを操作する方法|VBA技術解説(2022-12-14)
数字(1~50)を丸付き数字に変換するVBA|VBA技術解説(2022-11-15)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)|エクセル入門(2022-11-14)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)|エクセル入門(2022-11-14)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)|エクセル入門(2022-11-12)
LAMBDA以降の新関数はVBAで使えるか|VBA技術解説(2022-11-11)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)|エクセル入門(2022-11-08)
WRAPROWS関数(1次元配列を指定数の行で折り返す)|エクセル入門(2022-11-08)
EXPAND関数(配列を指定された行と列に拡張する)|エクセル入門(2022-11-07)
TAKE関数(配列の先頭/末尾から指定行/列数を取得)|エクセル入門(2022-11-06)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.並べ替え(Sort)|VBA入門
8.エクセルVBAでのシート指定方法|VBA技術解説
9.マクロって何?VBAって何?|VBA入門
10.繰り返し処理(Do Loop)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ