問題はこちらを参照。
【´・ω・`】:まず、基本解を示そう。文字数はそれほど短くはなっては
いないが、わかりやすくて上品な式であると思う。
【基本解・Excel】
=IF((ROW()-6)*(COLUMN()-6)*(ROW()-COLUMN())*(ROW()+COLUMN()-12),"","■")
(71文字)
【基本解・三四郎】
=If(Row(A1)=6 OR Col(A1)=6 OR Row(A1)=Col(A1) OR Row(A1)+Col(A1)=12,"■","")
【´・ω・`】:基本技で解答を作ると70文字強になるので初日の
文字数に関するコメントを実験的に「70文字未満」と
「70文字以上」に制限したというわけだ。
このことに関して悪児さんから・・・
>問題提出の頃にちょうど仕事が忙しかった、という方も多いとおもいます。
>ところが、1日もたたないうちに、60切り、さらには、50切りまで
>飛び出しています。
>2日ぐらいは、70字切り程度で抑えておいた方が、いろいろな方の
>解答が出るのではないでしょうか?
・・・というご意見を頂戴している。その通りかもしれない。
初日は文字数に関するコメントは一切禁止で、参加表明に
止めておいた方がいいのかもしれない。この辺りのことを
どうするかは解答を作るよりもはるかに難しい。
幸い、次回の出題者は悪児さんなので、コメントに関する
ルール(次回用)も提示していただけるとありがたい。m(__)m
【解答・Excel49文字】
さて、Excel49文字の解答を示そう。実は最初は59文字であった・・・
・・・Modeを使った式・・・
=MODE(ROW(),COLUMN(),12-ROW(),12-COLUMN())
・・・は下図のようになる
*=
*
*
*
*
*
よって・・・
=IF(ISNA(MODE(ROW(),COLUMN(),12-ROW(),12-COLUMN())),"","*")
これはこれできれいな式なのでもう減量の余地は無いかと思ったが・・・
やってみるとなんと12-ROW()か12-COLUMN()のどちらかを定数6と換えても
ちゃんと動くのだ!!
=IF(ISNA(MODE(ROW(),COLUMN(),12-ROW(),6)),"","*")
【解答・三四郎43文字・・・ズル】
=If(Mode(Row(A1),Col(A1),12-Col(A1),6),"■")
上式を使うと下図のようになる。
*
*
*
*
*
三四郎はExcelと違い、エラーが赤で表示されるので
セルの背景を赤にして誤魔化したというわけだ。