どうやらジョー3さんは、私が出題する問題とは相性がいいようで
独走されて息が切れました、、
解答例 109文字
{=MID(VLOOKUP(",*",REPT(SUBSTITUTE(A1,LEFT(A1,ROW(A:A)),)&","&
LEFT(A1,ROW(A:A)),LEN(A1)/ROW(A:A)),1,),2,9^9)}
一応76も見つけたという証拠に・・・
関数F△◎◇(A1,A1&A1,2)が活躍します。よねっd^^
配列で二桁も非常にたのしみです!
(む印さん談)
« 第115回 数値区切り | メイン | 第116回 組合せ »
最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。
画像を読み取れない場合は 別の画像を表示してください。
アカウント情報
(名前は必須です。メールアドレスは公開されません。)
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
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 |
88=MID(REPT(","&LEFT(A1,FIND(RIGHT(A1)&A1,A1&A1)),LEN(A1)/FIND(RIGHT(A1)&A1,A1&A1)),2,999)
投稿情報: りす | 2012年2 月11日 (土曜日) 午後 08時01分
113 です。これが限度いっぱいでした。
勿論、重くなるのが構わなければ、1:15をA:Aとして、110にはなります。
{=INDEX(MID(REPT(","&LEFT(A1,ROW(1:15)),LEN(A1)/ROW(1:15)),2,999),MATCH("",SUBSTITUTE(A1,LEFT(A1,ROW(1:15)),),))}
投稿情報: y sakuda | 2012年2 月11日 (土曜日) 午後 08時02分
78{=MID(VLOOKUP(A1,REPT({"",","}&LEFT(A1,ROW(A:A)),LEN(A1)/ROW(A:A)),2,),2,999)}
投稿情報: ni | 2012年2 月11日 (土曜日) 午後 08時02分
>関数F△◎◇(A1,A1&A1,2)が活躍します。よねっd^^
なるほどーー
全然思いつかなかったです。
投稿情報: y sakuda | 2012年2 月11日 (土曜日) 午後 08時05分
niさんの発想面白いです。これも全くかすりもしなかったな。
投稿情報: y sakuda | 2012年2 月11日 (土曜日) 午後 08時08分
>関数F△◎◇(A1,A1&A1,2)が活躍します。よねっd^^
考えついて、試したハズだけどなぁ~。
投稿情報: りす | 2012年2 月11日 (土曜日) 午後 08時12分
りすさんのRight(A1)一瞬目的が分からなかった。
投稿情報: y sakuda | 2012年2 月11日 (土曜日) 午後 08時14分
はい、、、、この部品・・・・があれば、、、だれでも・・・かんたん、、、
=FIND(A1,A1&A1,2)-1
で、なんとか、、、76・・・・
=MID(REPT(LEFT(","&A1,FIND(A1,A1&A1,2)),LEN(A1)/(FIND(A1,A1&A1,2)-1)),2,200)
この部品があっても、、、
78から、、、なかなか、、、進めなかった。・・・・
投稿情報: jyo-3 | 2012年2 月11日 (土曜日) 午後 08時16分
A1&A1が思いつかなかったな~
FINDは試しもしてないし
先頭の "," を取るのに苦労した最初の90文字
{=VLOOKUP(A1,REPT(LEFT(A1,ROW(1:15))&{"",","},LEN(A1)/ROW(1:15)-1)&LEFT(A1,ROW(1:15)),2,)}
投稿情報: ni | 2012年2 月11日 (土曜日) 午後 08時25分
りす さん、、、
どうして、88かなーーー・・・
って、思って、、、
想像して、、、つくってみた。
・・・・・・
当たってましたーーーー・・・・
・・・・・・・・・・・・・
投稿情報: jyo-3 | 2012年2 月11日 (土曜日) 午後 08時32分
>どうやらジョー3さんは、私が出題する問題とは相性がいいようで
>独走されて息が切れました、、
えーーー・・・・・・
そういうこと、、、、、
・・・・・・・・・・
あったっけーーーー・・・・・
・・・・・・・・・・・・
投稿情報: jyo-3 | 2012年2 月11日 (土曜日) 午後 08時36分
>関数F△◎◇(A1,A1&A1,2)が活躍します。よねっd^^
全然、考えもしませんでした。
これは天啓と言えましょう!!
投稿情報: くまぷー | 2012年2 月11日 (土曜日) 午後 09時02分
今週は、先回の問題の自分の48の解答にどうも納得がいかなくて、
ずっともっと短くなるはずと考えていました。
結局うまくいかずに金曜日にこっちの問題に頭を切り替えました。
76とほぼ同時に思いついた86、、というか86を思いついてそのあとすぐに76に切り替えました。
86=MID(SUBSTITUTE(A1,LEFT(A1,FIND(A1,A1&A1,2)-1),","&LEFT(A1,FIND(A1,A1&A1,2)-1)),2,999)
今日、
>例えばS*********使用禁止とかR***使用禁止とか・・・
というからくちさんの書き込みに刺激されて
SUBSTITUTEとREPTの二つを禁止する式を考えてみましたが
不完全の101文字になってしまいました。。
完全なものを目指すともう50位増えそうですが、
からくちさんの2つを禁止したものもみたいですねえ。
投稿情報: min | 2012年2 月11日 (土曜日) 午後 09時14分
それにしても、配列数式の皆さんの式、考えていますねえ。
全く考えなかった式ばかりです。。
なんか苦労された、、って感じですねえ。
すごい。。
投稿情報: min | 2012年2 月11日 (土曜日) 午後 09時21分
minさんの86、区切り入れる手段としてのSubstituteは考えなかったですね)
投稿情報: y sakuda | 2012年2 月11日 (土曜日) 午後 09時49分
うーん、、、、
niさんの、、、、むずかしーーーー
・・・・・・・・・・・・
きょうは、、、あたまが、、、、・・・・・へんだーーーーー・・・・
・・・・・・・・・・・・・・・
後で、考える。・・・・・
投稿情報: jyo-3 | 2012年2 月11日 (土曜日) 午後 09時50分
>86、区切り入れる手段としてのSubstitute
88とかおっしゃっておられたのは、当然この手だと思っていました。。
投稿情報: min | 2012年2 月11日 (土曜日) 午後 09時56分
minさんの見て初めてからくちさんがSubstituteに言及されている意味が分かりました^^
投稿情報: y sakuda | 2012年2 月11日 (土曜日) 午後 10時17分
y sakudaさん、INDEXとMATCHとは、渋い!
りすさん、いきなり二桁をたたき出されたのは
真っ先にFINDに気が付かれたからだったんですねー
それにしてもA1&A1のアイデアは秀逸ですね^^
そして、niさんの配列式、すばらしい!
わたしの109と似ていますがこうして見せられて納得ですd
VLOOKUPの検索値にA1、検索対象を{""、","}で左はA1と同じになるまで
右は","をくっつけ、同じ数だけ繰り返した文字列の二次元配列つくって・・・
う~ん、無駄がないですねぇ~、参りましたm(__)m
このようなVLOOKUPで仮想二次元配列使うテクは、
以前にminさんがやってられたのを見たのが初めてで、
そのとき、いいアイデアなのでわたしもどこかで使ってみたかったのですが
学べてなかったです、、今度機会があれば是非使いたいですが
最近は閃かない、、www
投稿情報: む印 | 2012年2 月11日 (土曜日) 午後 10時26分
>からくちさんがSubstituteに言及されている意味が分かりました^^
多分このことをおっしゃっていると思いますが、
>循環を使う必要無し
>従いましてその長さも関係無し
>勿論配列も
>その為のS*********では
>、、、と思います
「循環を使う必要なし」というところが気になります。
私のSubstituteはそんなに珍しい使い方ではないと思いますので、
もしかしたら、違うことなのではないかなあ。
投稿情報: min | 2012年2 月11日 (土曜日) 午後 10時37分
む印さんの式良くわかりませんね。。
投稿情報: min | 2012年2 月11日 (土曜日) 午後 10時55分
やっとわかった。。
すごい。。
投稿情報: min | 2012年2 月11日 (土曜日) 午後 11時00分
sakudaさんのも原点はむ印さんのと似ている発想ですね。
投稿情報: min | 2012年2 月11日 (土曜日) 午後 11時05分
>sakudaさんのも原点はむ印さんのと似ている発想ですね。
同じです。
私もワイルドカード使ったVlookupは最初の頃作ったのですが、その時点では長くなっちゃいました。
{=VLOOKUP(LEFT(A1)&"*",MID(IF(SUBSTITUTE(A1,LEFT(A1,ROW(1:15)),)="",REPT(","&LEFT(A1,ROW(1:15)),LEN(A1)/ROW(1:15)),""),2,999),1,)}
投稿情報: y sakuda | 2012年2 月11日 (土曜日) 午後 11時10分
ちょっと舌足らずでした。
同じと言う意味は、Substituteの結果空になるところを見つけると言う意味です。
ですから、む印さんのはすぐに中身分かりました。
投稿情報: y sakuda | 2012年2 月11日 (土曜日) 午後 11時12分
今回は、最初から配列数式は考えなかったので、SUBSTITUTEとREPTを組み合わせて組み立てるという発想はなかったです。。
もし、配列数式じゃない解答を思いつかなかったとしたら、同じようなことを考えたかもですね。。
投稿情報: min | 2012年2 月11日 (土曜日) 午後 11時31分
niさんもおなじだったようですが、私は見た瞬間から配列数式以外はないと思いこんじゃいました。
最初にとりあえずできた動くものは328で、それを改造したのが244w
それから見ると113ないしは110ってのは物凄い短縮なんですがね。
投稿情報: y sakuda | 2012年2 月11日 (土曜日) 午後 11時42分
>SUBSTITUTEとREPTを組み合わせて組み立てるという発想はなかったです。。
あれ、ファイル見てみたら、
遊びで作った
=MID(SUBSTITUTE(REPT(",",LEN(A1)/(FIND(A1,A1&A1,2)-1)),",",LEFT(","&A1,FIND(A1,A1&A1,2))),2,999)
こんなのがありました。
投稿情報: min | 2012年2 月11日 (土曜日) 午後 11時45分
>物凄い短縮なんですがね。
確かに、、ものすごい
投稿情報: min | 2012年2 月11日 (土曜日) 午後 11時57分
わたしも、最初、ちょっとだけ、、配列:
186
=MID(REPT(","&LEFT(A1,MIN(IF(MID(A1,ROW(2:16),200)&LEFT(A1,ROW(1:15))=A1,ROW(1:15),""))),LEN(A1)/LEN(LEFT(A1,MIN(IF(MID(A1,ROW(2:16),200)&LEFT(A1,ROW(1:15))=A1,ROW(1:15),""))))),2,200)
A1の数列を・・・・輪にして、ぐるぐる回してA1と同じになるのは?
って作戦でした。
短くする自信がなかったので・・・・
あっちの路線に変更しました。
投稿情報: jyo-3 | 2012年2 月12日 (日曜日) 午前 08時40分
{ と } が、抜けてました。 ↑ ごめんなさい。
投稿情報: jyo-3 | 2012年2 月12日 (日曜日) 午前 08時45分
で、
りす さんと、同じ解法の雰囲気で・・・・
なぜ?88?と、思ったとき、、この、左と右をくっつける思考・・・・
を、入れたら、88になりまして、推論が当たってました。
投稿情報: jyo-3 | 2012年2 月12日 (日曜日) 午前 08時49分
からくちさん、まだかな?面白いのでてきそうなんだけど^^
投稿情報: y sakuda | 2012年2 月12日 (日曜日) 午前 10時45分
からくちさんの面白いのが出てこないので、、
つなぎにもならない面白くもなんともない式
お見せするほどでもありませんが。。
>SUBSTITUTEとREPTの二つを禁止する式を考えてみましたが
>不完全の101文字になってしまいました。。
101=LEFT(TEXT(LEFT(A1,FIND(A1,A1&A1,2)-1)&",","@@@@@@@@@@@@@@@"),LEN(A1)+LEN(A1)/(FIND(A1,A1&A1,2)-1)-1)
投稿情報: min | 2012年2 月12日 (日曜日) 午前 11時20分
なるほどーー
投稿情報: y sakuda | 2012年2 月12日 (日曜日) 午前 11時35分
一週間たまっていたフラストレーションがやっと解けました。。
投稿情報: min | 2012年2 月12日 (日曜日) 午後 10時56分
次回は私のキワモノですかね?
今回面白かっただけに嫌だな・・・・・
投稿情報: y sakuda | 2012年2 月13日 (月曜日) 午前 11時30分
jyo-3のfindには参りました。
他にも皆さんの index,matchを使用したものや、
substituteを使ったものなど、何度見てもかっこ良しです。
僕は結局 150文字が限界でした(+_+)
{=MID(REPT(","&LEFT(A1,MATCH(A1,REPT(LEFT(A1,ROW(1:15)),LEN(A1)/ROW(1:15)),0)),LEN(A1)/MATCH(A1,REPT(LEFT(A1,ROW(1:15)),LEN(A1)/ROW(1:15)),0)),2,999)}
投稿情報: 春 | 2012年2 月13日 (月曜日) 午後 12時19分
>次回は私のキワモノですかね?
なんだろ、、、こわいような、、、やはり、、、みたいけど、、、
>今回面白かっただけに嫌だな・・・・・
ん、、、先回も、面白かったですよ。
>jyo-3のfindには参りました。
find の先着は、りすさんですね、、、
続いて、、jyo-3 minmaxさん、、む印さんと、、、なだれこんだけど、、、
さて、さて、、
投稿情報: ジョー3 | 2012年2 月13日 (月曜日) 午後 12時36分
>なんだろ、、、こわいような、、、やはり、、、みたいけど、、、
やること自体結構難しいのと、手段があまりなさそうということです^^;
投稿情報: y sakuda | 2012年2 月13日 (月曜日) 午後 01時09分
第116回のヒントです。
見たくない人は見ないでください。
・
・
・
・
・
・
・
・
・
・
・
1列目の説明は省略するとして、
2列目は、m-1個まで、上のセルと同じで、最後の1個(m個目)は、上のセル+1
そして、m個目が、6になったら、m-1個目を上のセル+1、m個目は、左のセル+1
そして、m-1個目が、5になったら、m-2個目を上のセル+1、
m-1個目は、左のセル+1、m個目も、左のセル+1
…
これを式にする。かなり複雑。
投稿情報: りす | 2012年2 月17日 (金曜日) 午後 08時24分