« 表計算一筆書き・・・女王陛下の旗、たなびく下に 【問題】 | メイン | 表計算一筆書き・・・便利ツール »

2007年11 月 3日 (土曜日)

コメント

ジョー3

MODE  ???
全然、知りませんですね、
学校では、使う関数なんでしょうか??

y sakuda

50を切りたかったですが、52で思考停止状態になっちゃいました^^;
ただ、52文字は汚らしく、↓の60文字の式が一番気に入ってます。
=LEFT("*",(ROW()-6)^3*(COLUMN()-6)=(ROW()-6)*(COLUMN()-6)^3)

この式はこのあとどうにもならなかったので、発想を少し変え、これで58文字になりました。
=LEFT("*",OR(ROW()=6,COLUMN()=6,ROWS(1:$6)=COLUMNS(A:$F)))

ただ、これは定義そのもので、面白みに欠けます。

52は↓ですが、わざわざエラーを出させて検出するってのが・・・・・
=LEFT("*",ISERR(1/(1/(ROW()-6)^2-1/(COLUMN()-6)^2)))

redstar

MODEですかぁ・・・知ってはいるけど使ったことないなぁ。凄い。
わたしの50文字は

=REPT("*",ISERR(0/LN(((COLUMN()-6)/(ROW()-6))^2)))

どうせエラーがつきまとうので、全部エラーにした方が文字数短
くなると思いました。

49文字は

=IF(ISERR(0/LN(((COLUMN()-6)/(ROW()-6))^2)),"*",)

でゼロのチェックを外す でした。ズルですね(^ ^ ;

ジョー3

> =LEFT("*",(ROW()-6)^3*(COLUMN()-6)=(ROW()-6)*(COLUMN()-6)^3)

へーーー、sakudaさん、 ^3 とは、、
面白いですーーー

>エラーを出させて検出するってのが・・・・・
わーーー、これも思いつきませんです。
凄い、テクニックだなーー。私には無理。

ジョー3

> どうせエラーがつきまとうので、全部エラーにした・・・・
へーーー、凄いテクニックですねーー

ジョー3

53文字で降参でした。

=MID("■",LEN(((ROW()-6)^4-(COLUMN()-6)^4)^2^0.125),1)

今回は ^ ^ ^ ^ 
^4個で迫ってみました。
主題を一貫できたので、まあ、その点は
満足です。でも、皆さんには、かないません。
  

かず

う~ん、皆さん凄いですね!!

まったく考え付きませんでした orz
=IF(((COLUMN()-6)^2-(ROW()-6)^2)*(ROW()<>6)*(COLUMN()<>6),"","*")

ジョー3

>まったく考え付きませんでした orz
かずさん、・・・分かりやすいですーーー
教科書的で、良いと思いますーーー。

ジョー3

sakudaさんの、60文字・・・・
好きです。美しいです。考えが、、、、


・・・・・・・長くても良いです。・・・
思考が、シンプルに決まってますね、、、

ジョー3

悪児さんのエクセル50
見てきました。

http://akuji.justblog.jp/blog/

^^^ で (1/3)が最後で・・・・
そうですかーーー・・・・

minmax

締め切り15分前までは
y sakudaさんとほとんど同じで52字の
=LEFT("■",ISERR(1/(1/(COLUMN()-6)^2-1/(ROW()-6)^2)))
でした。
y sakudaさんは嫌いなようですが私はエラーを使って何とかしたかったのでこの式が好きです。
そのあと締め切りぎりぎりでできた49字が
=MID("■",LEN(((6-ROW())^4*(6-COLUMN())^6)^0.1),1)
ですが、
複雑なので余り好きではありません。

modeねー。
そんな関数すっかり忘れていましたし
覚えていても結果を見いだせなかったでしょうけど。

redstar

>LEN((((ROW()-6)^4-(COLUMN()-6)^4))^2^0.125)

↑凄いですね、これ・・・こんなに巧みにに数値を操ることなど私には
到底できません。。。憧れます。

ジョー3

>そのあと締め切りぎりぎりでできた49字が
ありゃ、りゃ、、、とっても似てるけどv・・・
4文字も違うのねーーー
参りました。。。。

minmax

>ありゃ、りゃ、、、とっても似てるけどv・・・
ジョー3さんの式もすばらしいです。
私のは試行錯誤の末です。

ジョー3

LEN  と  ^  の部では、、、

ジョー3    53
悪児さん   50
minmaxさん 49

・・・・・だれも、やらんと思ったが、、、
やるもんだよねーーー・・・・みなさん、、  

えくせるバカ

やはり皆さんエラーを利用する方法でしたね。
最初はエラー回避で
 =MID("*",LEN(IF(ROW()=6,,(COLUMN()-6)/(ROW()-6))^4),1)
54文字からなかなか抜けられませんでしたが、
エラー利用で今朝、ようやく50文字
 =REPT("■",ISERR(1/LN((COLUMN()-6)^2/(ROW()-6)^2)))

redstarさんと同じでした!(^^)!

ジョー3

>やはり皆さんエラーを利用する方法でしたね。

頭の片隅にも・・・・じぇーーん、じぇん、
出てこなかったーーー・・・・
がくっ・・・・

くまぷー

みなさん、どもです。
やっと体育館の準備が終わりました。
これから帰ります。
あ~しんど・・・

ぷりたま

今回は完敗です。 60どまり

COLUMN()とROW()の2組使ったんじゃ勝負になりませんよね^^

MODEですか^^ 全く思いつかなかった。

エラーを敢えて利用する^^ (~へ~;)ウーン 凄い。

悪児さんの LENと ^1/3(立法根)
見事です。

修行が足りませんね orz

=LEFT("*",OR((COLUMN()-6)^2=(ROW()-6)^2,COLUMN()=6,ROW()=6))

redstar

えくせるバカさん

わたしと同じ52→50コースだったので、もしかしたら同じ(LN)かも。。。
っておもっていました(^ ^)

えくせるバカ

くまぷーさんの49は楽しみでした!
MODE関数を使われエラー利用でISNA()に導かれてますねぇ。
MODEがエラー値#NAを表すのは気がつきませんでした。

そしてもう一つ凄いのは
minmaxさんの49。
文字数を一文字にするために
数式的手法をうまく駆使されているのは関心しました。
こんなのは全く思いつきませんでした。

ジョー3

ぷりたまさん!!!---
=LEFT("*",OR((COLUMN()-6)^2=(ROW()-6)^2,COLUMN()=6,ROW()=6))
全く同じのを作ってましたーーー
で、これも、好きですーーー
考えがすっきり分かって良いよねーーー

ぷりたまさん凄い!!(おれ、同じ(^。^) )

えくせるバカ

>もしかしたら同じ(LN)かも。。。
そうそう
夕方携帯で覗いたら
redstarさんも50文字ということで
私も、同じだろうと思ってました。!(^^)!

悪児さんがいい関数見つけたと
おっしゃってたので、
エラー利用に転換してから探してみたら
LN関数がドンピシャ!
50文字にできました。

えくせるバカ さん
恐縮です。
何度もいいますが試行錯誤の末見つけただけです。
思いついたわけではありません。

ところで三角関数に関する書込があったようですが、式を短くする回答はどうなったのでしょうか。
気になっています。

ジョー3

最初、・・・
=LEFT("*",OR
((ROW()-6)^2*(COLUMN()-6)^2=0
,(ROW()-6)^2-(COLUMN()-6)^2=0))

こんなのを考えた。で、、、
=LEFT("*",
(ROW()-6)^2{*,-}(COLUMN()-6)^2=0))
とかが、、、あったらいいのになーーー
って、おもった。

エラーにしてから式を確定する段階で
こんなのも考えました。参考まで
=IF(COUNT(1/(1/(COLUMN()-6)^2-1/(ROW()-6)^2)),"","■")
(53文字)

minmax

09時46分と09時56分
の2件名前入れ忘れたみたいです。
(minmax)

ジョー3

> LN関数がドンピシャ!
む、む、難しいなーーー
対数??・・・・
難しすぎるーーーー

くまぷー

今、帰ってきました。

>MODE  ???
>全然、知りませんですね、
>学校では、使う関数なんでしょうか??

え~と、中学だったか小学校だったか忘れましたけど

{1,1,2,2,3,4 4 4 ,5 ,5}のモード(最頻値)を求めなさい・・・
なんて問題があったようなきがします(^^ゞ
蛇足ですが、最頻値とは一番たくさんでてくる値なので4です。
確か平均を習うときにメジアンといっしょにでてくるはず・・・(^。^)

ジョー3

モード
最頻値
メジアン
???
記憶にないなーーー
40~50年も、前だもんなーーー
・・・・・・

y sakuda

ちょっと、用足しにでてたら凄いにぎやか^^
ざっと見ただけですがいろんなやり方されてますね。
MODEは全くかすりもしてない。
悪児さんの1/3もジョー3のもこれから解析しますがどっから出てきたんですかね?
minimaxさん、redstarさん、えくせるバカさんのは大体分かりますが、微妙に違うところが面白いです。
わたしもエラー発生の式は大分変形してためしましたが、結局短くなりませんでした。
LNも使ってみたけど、短縮にはならなかったです。

y sakuda

だいたい皆さんの解析しました。
MODEだけじゃなく、全く考えもしなかった手法に唖然。
一番悔しいのはredstarさんのLNです。
私もLNは考えましたが 0/LN( ) と0を使うのは全く思いつかなかった^^;

ここに投稿しても埋もれちゃうかもしれませんが、皆さんの沢山の回答試しているうち面倒くさくなり、↓をつくりました。

Sub Hitofude()
With ActiveSheet
.Columns("A:K").ColumnWidth = 2
.Range("A1:K11") = .Range("A1").FormulaLocal
.Range("A14") = "'" & .Range("A1").FormulaLocal
.Range("A16").Formula = "=len(A14)"
End With
End Sub

A1に式を貼り付けて実行してください。
A1:K1に式をコピーし、列幅を2にします。
また、文字数も自動的に表示します。

一筆書きまだ続くんなら、アドインにして、コンテキストメニューから起動できるようにするかな・・・

悪児

今帰ってきました。

いやぁ、色々あるものですね。(^^)(^^)
エラー利用は考えても見ませんでした。

三角関数は、これです。

三四郎47
=If(Atan2(Row(A1)-6,Col(A1)-6)*4 MOD Pi(),,"*")
=If(Fp(Atan2(Row(A1)-6,Col(A1)-6)*4/Pi()),,"*")
=If(Len(Atan2(Row(A1)-6,Col(A1)-6)/Pi())<6,"*")

 Excelでは、エラーになってしまう・・・(-_-;)(-_-;)
 (まぁ、三四郎47がExcelでは、48に当たることの証明、ということで)
Excel48(ちょいズル)
=LEFT("#",LEN(ATAN2(ROW()-6,COLUMN()-6)/PI())<6)

きっちーさんの46、早くみたいなぁ。(^^)(^^)

悪児

>=MID("■",LEN(((6-ROW())^4*(6-COLUMN())^6)^0.1),1)

やられた、って感じですね。(^^)(^^)

^4 + 0.1

(1/3)

と同じ文字数で、
さらに返値がすべて1桁に収まってしまうとは・・・(^_^)(^_^)/~

くまぷー

sakudaさんの・・・
=1/(1/(ROW()-6)^2-1/(COLUMN()-6)^2)
・・・とか
redstarさんの・・・
=0/LN(((COLUMN()-6)/(ROW()-6))^2)
・・・とか
えくせるバカさんの・・・
=REPT("■",ISERR(1/LN((COLUMN()-6)^2/(ROW()-6)^2)))
・・・
エラーを上手に利用する・・・というよりも積極的に作る方法・・・

ジョー3さんの・・・
=MID("■",LEN(((ROW()-6)^4-(COLUMN()-6)^4)^2^0.125),1)
の・・・^2^0.125・・・
悪児さんの・・・
=LEFT("*",LEN(((6-ROW())*(6-COLUMN())^2)^(1/3))<3)
の・・・2)^(1/3)・・・
minmaxさんの・・・
=MID("■",LEN(((6-ROW())^4*(6-COLUMN())^6)^0.1),1)
・・・^4*・・・^6)^0.1)
・・・・
神業的な定数の組合せ・・・

ちょっと真似できません。

悪児

>神業的な定数の組合せ・・・

悪児のは、試行錯誤ではなく、
理詰めですよ。(^^)(^^)
詳しくは、後ほど。(^_^)(^_^)/~

これから、ラグビー見ながら、
夕飯です。(^^)ゞ

くまぷー

かずさんの・・・
=IF(((COLUMN()-6)^2-(ROW()-6)^2)*(ROW()<>6)*(COLUMN()<>6),"","*")
・・・や、ぷりたまさんの・・・
=LEFT("*",OR((COLUMN()-6)^2=(ROW()-6)^2,COLUMN()=6,ROW()=6))
ジョー3さんが仰っているように・・・

>・・・分かりやすいですーーー
>教科書的で、良いと思いますーーー。

同じくで~す。(^。^)

minmax

悪児さんとこ見に行ってきました。
ちょいずるエクセル48気に入りました。
発想がすごいです。
とうてい私には思いつかない。

sako

やっと飲み会から帰りました。
う~ん。乾杯ではなく完敗です。

結局私は素直に
=IF(OR((ROW()-6)^2-(COLUMN()-6)^2=0,(ROW()-6)*(COLUMN()-6)=0),"*","")
をまじめに変形して
=IF((ROW()-6)^3*(COLUMN()-6)-(ROW()-6)*(COLUMN()-6)^3,"","*")
おきまりのLEFTを使うため条件を TRUEにし、
=LEFT("*",(ROW()-6)^3*(COLUMN()-6)=(ROW()-6)*(COLUMN()-6)^3)
で思考がストップしていました。
宴会中に 全部エラーにしてISERR が使えるのではと思いはしましたが間に合いませんでした。

あまりの見事さに酔いがさめたようです。

minmax

=MID("■",LEN(((6-ROW())^4*(6-COLUMN())^6)^0.1),1)
の((6-ROW())^4*(6-COLUMN())^6)^0.1の部分ちょっとだけ解説します。
あくまで試行錯誤の上できた式なのですが・・・
(6-ROW())と(6-COLUMN())の値が同一の場合のみ
それぞれのべき乗の指数(上記式の場合4と6)を合計したもので1を割った数値(上記式の場合0.1)を最後にべき乗すると「6-ROW()及び6-COLUMN()」の数値に戻ります。
(F列と6行は0になるので何条しても0になるので解説省略)
つまりべき乗する数値が一致する場合の数値をaとすると
a^4*a^6=a^10となり
(a^10)^0.1がaに戻ることになります。
べき乗するそれぞれの元の数値が違っている場合は小数点を持つ数値になりLENで判定すると1以上の文字列になります。
これを試行錯誤の上最短の文字数はないか検討して出た結果です。
(偉そうなこといってすみません。実のところ自分でも理解に苦しみました)

きっちー

携帯からかきこみで、いま酔いつぶれてます。

三角関数がほとんどでていないのが意外です。

酔った上でとりあえず、数式書いてみる。

=if(sin(atan2(col(a1)-6,row(a1)-6)*4)+5=5,"■")

0.1 や 0.5 0.125 の式は試していましたが、つめられないのでぼつでした。

酔っぱらいなのでまちがえてるかも。

くまぷー

みなさん、お早うございます。
くまぷーは今日も一日体育館詰めです。
7:30には生徒が待っていますので
もうすぐ出発です。
間にちょっと抜けてみなさんの
書き込みを見るのが楽しみです。
それでは、そろそろ行ってきます(^.^/~~~

kir

おはようございます。
今回はみんないろいろな回答ですね!
53文字
=MID("*",LEN(ABS((ROW()-6)^4-(COLUMN()-6)^4)^0.25),1)
50文字
=LEFT("*",ISERR(0/((ROW()-6)^-2-(COLUMN()-6)^-2)))

minmax

おはようございます。
ちなみに回答の応用でエクセル48できました。
=LEFT("■",LEN(((6-ROW())*(6-COLUMN())^4)^0.2)<3)
結果を見ると悪児さんの応用に近いみたいですね。

えくせるバカ

kirさんの
=LEFT("*",ISERR(0/((ROW()-6)^-2-(COLUMN()-6)^-2)))
式には参りました。
-2乗は私も考えましたが
ゼロを割るのは気がつきませんでした。
いつもの事ながら勉強になりました!

ジョー3

おーーーkirさんも、len ^ グループの・・・おなかま、、
=MID("*",LEN(ABS((ROW()-6)^4-(COLUMN()-6)^4)^0.25),1)


^-2 は、面白いですよねーーー

きっちー

すぐ出来たのものは、52文字。13は[4/Pi()*10]。

=If(Ip(Angle(Col(A1)-6.01,Row(A1)-6)*13) LIKE 0,"■")

これでは1文字多くなる。
=If(find(0,Ip(Angle(Col(A1)-6.01,Row(A1)-6)*13)),"■")
=If(Ip(Angle(Col(A1)-6.01,Row(A1)-6)*13) mod 10,,"■")

49文字。返値が同じ関数。

=If(Ip(Atan2(Col(A1)-6,Row(A1)-6)*13) LIKE 0,"■")

47文字。悪児さんはさすがにすぐ作ってしまいます。

=If(Atan2(Col(A1)-6,Row(A1)-6)*4 MOD Pi(),,"■")
=If(Fp(Atan2(Col(A1)-6,Row(A1)-6)*4/Pi()),,"■")

LENは短くできないと判断して、手を付けませんでした。

追いつかれてから、再挑戦。
46文字。45度角で0が出るように4倍にしたものを関数で戻して、余計な”,”を消去。
4倍すると演算誤差の許容範囲から外れるので、[0=0]が偽になってしまうことを発見。

=If(Sin(Atan2(Col(A1)-6,Row(A1)-6)*4)+5=5,"■")

悪児

>=If(Sin(Atan2(Col(A1)-6,Row(A1)-6)*4)+5=5,"■")

(a = 0)=False が
(a+5=5)=True になるのですか。(^^;)(^^;)

気付かなかった・・・m(_ _)m マイリマシタ

悪児

>=LEFT("■",LEN(((6-ROW())*(6-COLUMN())^4)^0.2)<3)

そうか、0.2という手もあったか・・・(^^;)(^^;)

できるもんですなぁ・・・(^^)ゞ

悪児

今回の「女王陛下の旗」
非常に単純な図形だけに、
色んな方法が見つかって、
面白かったですね。
しかも、どの方法もほとんど長さが変わらない、というのも、不思議ですね。(^^)(^^)

悪児

悪児の「^版 三四郎49」は、minmaxさんの手法を頂くと、47になりますね。

=If(Fp(((6-Row(A1))^4*(6-Col(A1))^6)^0.1),,"*")
=If(Fp(((6-Row(A1))*(6-Col(A1))^4)^2^0.2),,"*")

でも、三四郎には、-8^(1/3) がエラーになるという「バグ?」があるので、45
=If(Fp(((6-Row(A1))*(6-Col(A1))^4)^0.2),,"*")
は、エラーになってしまいます。(-_-;)(-_-;)

三四郎最短は、きっちーさんの三角関数46文字ですね。(^_^)(^_^)/~

これをExcelにすると、
ExcelのAtan2は、三四郎と違って、Atan2(0,0)を「エラーじゃ!」と主張しますので、
ちょいズルになってしまいますが、47文字になります。

=LEFT("#",SIN(ATAN2(COLUMN()-6,ROW()-6)*4)+5=5)

とゆーわけで、三四郎Exce合わせての最短は、
きっちーさんの、三四郎(三角関数)46のよーですね。(^^)(^^)

きっちー

>+5=5

Excelでは[+1=1]でよいようです。

許容範囲が三四郎より広いと言うことでしょうか。
または演算精度が高い?

悪児

「女王陛下への道」
をこちらにアップしました。(^^)ゞ

http://akuji.justblog.jp/blog/2007/11/post_d09f.html

どうぞ、ご覧下さい。(^_^)(^_^)/~

くまぷー

「女王陛下への道」・・・
拝見させて頂きました。
面白い!!
読みごたえ充分です!!
まだお読みになっていない方は
是非、ご覧になってください。

redstar

くまぷーさん、みなさんこんばんは。
表計算一筆書き、大変楽しいひと時を過ごさせていただきま
した。誘ってくださったくまぷーさんに感謝、です。ありがとう
ございました!
皆さんの数式を拝見し、その見識の深さに感嘆するばかりで
自分はまだまだ勉強が足りないことを痛感しました。機会あれ
ばせひ参加させていただきたく思います。その時はまた仲間
に入れてやってくださいませ。
ありがとうございました。

MODE、使いこなせるよう頑張ります!

k@自転

やっぱり皆さん、、、凄すぎ^^;
って、いつもこのコメントを入れてる
気がする^^;


=IF(OR(ROW()=COLUMN(),ROW()+COLUMN()=12,ROW()=6,COLUMN()=6),"■","")
で67文字^^;
な~~んも考えとらん^^;

ジョー3

>な~~んも考えとらん^^;
いえいえ、本来はこういう式であるべきでしょう・・・・とは、、思います。
本質をそのまんま、ズバリだから、、
(ミニ反省ではある)

くまぷー

昨日、sakudaさんから「表計算一筆書き」のみなさんに
・・・ということであるものを頂きました。
今晩、公開しますね。お楽しみに(^^)

コメントの確認

コメントのプレビュー

プレビュー中です。コメントはまだ投稿されていません。

処理中...
コメントを投稿できませんでした。エラー:
コメントを投稿しました。 さらにコメントを投稿する

入力された文字と数字は画像と一致していません。再度入力してください。

最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。

画像を読み取れない場合は 別の画像を表示してください。

処理中...

コメントを投稿

アカウント情報

(名前は必須です。メールアドレスは公開されません。)

2024年8 月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

TOP メニュー