虚構の覇者sheet6:推理ドラマあるある
とある街の小さなスナック『エンター』。
幕張での小さな冒険を終え、再びいつもの日常に戻っていた。
開店と同時に川口がやって来た。
「上、いいか?」開口一番これである。
一日預かった猫のオムに情が移り、会いたくて仕方ないのだ。
「いいけど、散らかってるよ」とアキラが返事をすると「そんなの気にしねぇだろ、お互い」と川口が返す。
「ついでに片付けといてー」と冗談のつもりでアキラが言ったが、川口なら本当にやりかねないと思い、一人でほくそ笑んだ。
しばらくすると育美と薔薇筆もやって来た。
「グッさん、上に居るよ」とアキラが言うと、育美は「えっ、ずるい。私もいいですか?」と、返事を聞くか聞かないかのうちに奥へ消えた。
「いつもすいません」と謎の謝罪をする薔薇筆だが、続けて妙な話を始めた。
「そういえば、居酒屋で会ったSEクン達、イベント主催企業と取引があるって言ってたでしょ。先日打ち合わせに行った際、エルさんのプログラムのどこが悪かったのか聞いたらしいんです。ところが担当も色々バタバタしてて、ちゃんと見てない、次の打ち合わせまでには調べておきますって返事だったそうです」
「それで、結果は?」とアキラは聞きながらエルの方をチラ見した。気のせいか少し微笑んでいるように見えた。
「恐らくこちら…エントリーがこの店からだったから、こっちへコンタクトがあるはずだって言ってました」
翌日、本当に主催企業から連絡があった。こちらに不備があったので、会って直接謝罪したいとのこと。店が定休の来週月曜に会うことになった。
チーム『エクセレンター』のグループLINEにそのことを告げる。皆んな仕事は抜けられないだろうと思っていたが、薔薇筆は仕事関係と言えなくもないので、その時間抜けて来るという。
月曜当日。
イベントで壇上にいた解説者と、その上司と思われる二人が休業の『エンター』にやって来た。
簡単な挨拶と名刺交換を済ませ、ボックス席へ案内する。アキラとエルがボックス席に向かい合って座る。薔薇筆はカウンター席でこちらを向く様に腰掛ける。
「単刀直入に申しまして、イベント時に使用したサンプルデータに不備がありました。要するに正確性でいえばXエルフさんの結果のほうが正しかった事になります」
「はぁ…」アキラが気の抜けた相づちを打つ。
「データの不備というのは?」薔薇筆が問いかける。
「えぇ、アンケートの年齢の項目に247とか558といった入力ミスが見つかりました。これらが年齢別、今回の場合六十歳以上としてましたが、そちらの結果に不正確さをもたらしています」解説者だった男が答える。
「エル…Xエルフの結果には、それが含まれてなかった」アキラがつぶやくように言う。
「あらためてマクロを拝見しましたら、年齢の列が120を超えるものは弾くように書かれていました。そうですよね、Xエルフさん」
頷くエル。表情は穏やかだ。
「つまり、AIや御社の分析結果よりエルさんの方が正確だったと。本来なら優勝はエルさんだった事になりますね」薔薇筆が詰め寄る。
「おっしゃる通りです。ですから今回弊社のサイトの方で訂正と謝罪文を掲載するつもりです」上司が言う。
「その必要はありません」凛とした口調でエルが言う。
「あの場では御社の分析結果との相違がない事が正確性の条件でした。御社の結果が不正確なものでもそれに合致したものが正確とするのがあの時のルールです」
「しかし…」上司が言いかけるのをアキラが制し、
「まぁ、エルがそう言うんならそれでいいんじゃないかな。そちらも隠ぺいせずに正直に言ってくれた事だし、わざわざ御社の面子を潰さなくてもいいでしょ」
アキラとしてはこれ以上エルに世間の注目を浴びせたくないという思いがあったが、そこは伏せておいた。
「そう言っていただけると助かります。お詫びといいますか正当な権利かと思いますが、優勝賞品のPCと銘酒詰め合わせは後日お送りいたしますので、こちらの方はお納めいただけますでしょうか」と上司が言った。
もちろんエルは快諾した。
「ちなみにX…エルさんはデータに不備があるっていつ気づかれたんですか?」と解説者が聞いた。
エルは待ってましたと言わんばかりに答える。
「それは初めからです。ルール説明でデータがプロジェクターに映し出された時に」
「あの一瞬で!?まさか…」驚く解説者にエルは言う。
「だから質問したんです『データは人間のものですか?』って。そんな長寿の人間はいないでしょ?」
そういうとエルは悪戯っぽく微笑んだ。
エクセルのマクロを作ってください。・B列が文字列もしくは120より大きければ、その行は別シートに移し元のシートからは削除する。
Sub MoveRows()
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Dim lastRow As Long
Dim i As Long
Dim targetRow As Long
' シートの設定
Set wsSource = ThisWorkbook.Sheets("Sheet1") ' 元のシート名を指定
Set wsTarget = ThisWorkbook.Sheets("Sheet2") ' 移動先のシート名を指定
' 元のシートの最終行を取得
lastRow = wsSource.Cells(wsSource.Rows.Count, "B").End(xlUp).Row
targetRow = 1 ' 移動先のシートの開始行
' 逆ループで行をチェック
For i = lastRow To 1 Step -1
If IsNumeric(wsSource.Cells(i, 2).Value) Then
If wsSource.Cells(i, 2).Value > 120 Then
wsSource.Rows(i).Copy Destination:=wsTarget.Rows(targetRow)
wsSource.Rows(i).Delete
targetRow = targetRow + 1
End If
Else
wsSource.Rows(i).Copy Destination:=wsTarget.Rows(targetRow)
wsSource.Rows(i).Delete
targetRow = targetRow + 1
End If
Next i
End Sub