« 第115回 数値区切り | メイン | 第116回 組合せ »

2012年2 月11日 (土曜日)

コメント

りす

88=MID(REPT(","&LEFT(A1,FIND(RIGHT(A1)&A1,A1&A1)),LEN(A1)/FIND(RIGHT(A1)&A1,A1&A1)),2,999)

y sakuda

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)),),))}

ni

78{=MID(VLOOKUP(A1,REPT({"",","}&LEFT(A1,ROW(A:A)),LEN(A1)/ROW(A:A)),2,),2,999)}

y sakuda

>関数F△◎◇(A1,A1&A1,2)が活躍します。よねっd^^
なるほどーー
全然思いつかなかったです。

y sakuda

niさんの発想面白いです。これも全くかすりもしなかったな。

りす

>関数F△◎◇(A1,A1&A1,2)が活躍します。よねっd^^
考えついて、試したハズだけどなぁ~。

y sakuda

りすさんのRight(A1)一瞬目的が分からなかった。

jyo-3

はい、、、、この部品・・・・があれば、、、だれでも・・・かんたん、、、
=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から、、、なかなか、、、進めなかった。・・・・

ni

A1&A1が思いつかなかったな~
FINDは試しもしてないし
先頭の "," を取るのに苦労した最初の90文字
{=VLOOKUP(A1,REPT(LEFT(A1,ROW(1:15))&{"",","},LEN(A1)/ROW(1:15)-1)&LEFT(A1,ROW(1:15)),2,)}

jyo-3

りす さん、、、
どうして、88かなーーー・・・

って、思って、、、

想像して、、、つくってみた。
・・・・・・
当たってましたーーーー・・・・
・・・・・・・・・・・・・

jyo-3

>どうやらジョー3さんは、私が出題する問題とは相性がいいようで
>独走されて息が切れました、、
えーーー・・・・・・
そういうこと、、、、、
・・・・・・・・・・
あったっけーーーー・・・・・
・・・・・・・・・・・・

くまぷー

>関数F△◎◇(A1,A1&A1,2)が活躍します。よねっd^^

全然、考えもしませんでした。
これは天啓と言えましょう!!

min

今週は、先回の問題の自分の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

それにしても、配列数式の皆さんの式、考えていますねえ。
全く考えなかった式ばかりです。。
なんか苦労された、、って感じですねえ。
すごい。。

y sakuda

minさんの86、区切り入れる手段としてのSubstituteは考えなかったですね)

jyo-3

うーん、、、、
niさんの、、、、むずかしーーーー
・・・・・・・・・・・・
きょうは、、、あたまが、、、、・・・・・へんだーーーーー・・・・
・・・・・・・・・・・・・・・
後で、考える。・・・・・

min

>86、区切り入れる手段としてのSubstitute
88とかおっしゃっておられたのは、当然この手だと思っていました。。

y sakuda

minさんの見て初めてからくちさんがSubstituteに言及されている意味が分かりました^^

む印

y sakudaさん、INDEXとMATCHとは、渋い!

りすさん、いきなり二桁をたたき出されたのは
真っ先にFINDに気が付かれたからだったんですねー
それにしてもA1&A1のアイデアは秀逸ですね^^

そして、niさんの配列式、すばらしい!
わたしの109と似ていますがこうして見せられて納得ですd
VLOOKUPの検索値にA1、検索対象を{""、","}で左はA1と同じになるまで
右は","をくっつけ、同じ数だけ繰り返した文字列の二次元配列つくって・・・
う~ん、無駄がないですねぇ~、参りましたm(__)m

このようなVLOOKUPで仮想二次元配列使うテクは、
以前にminさんがやってられたのを見たのが初めてで、
そのとき、いいアイデアなのでわたしもどこかで使ってみたかったのですが
学べてなかったです、、今度機会があれば是非使いたいですが
最近は閃かない、、www

min

>からくちさんがSubstituteに言及されている意味が分かりました^^
多分このことをおっしゃっていると思いますが、
>循環を使う必要無し
>従いましてその長さも関係無し
>勿論配列も
>その為のS*********では
>、、、と思います

「循環を使う必要なし」というところが気になります。
私のSubstituteはそんなに珍しい使い方ではないと思いますので、
もしかしたら、違うことなのではないかなあ。

min

む印さんの式良くわかりませんね。。

min

やっとわかった。。
すごい。。

min

sakudaさんのも原点はむ印さんのと似ている発想ですね。

y sakuda

>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

ちょっと舌足らずでした。
同じと言う意味は、Substituteの結果空になるところを見つけると言う意味です。
ですから、む印さんのはすぐに中身分かりました。

min

今回は、最初から配列数式は考えなかったので、SUBSTITUTEとREPTを組み合わせて組み立てるという発想はなかったです。。
もし、配列数式じゃない解答を思いつかなかったとしたら、同じようなことを考えたかもですね。。

y sakuda

niさんもおなじだったようですが、私は見た瞬間から配列数式以外はないと思いこんじゃいました。
最初にとりあえずできた動くものは328で、それを改造したのが244w
それから見ると113ないしは110ってのは物凄い短縮なんですがね。

min

>SUBSTITUTEとREPTを組み合わせて組み立てるという発想はなかったです。。
あれ、ファイル見てみたら、
遊びで作った
=MID(SUBSTITUTE(REPT(",",LEN(A1)/(FIND(A1,A1&A1,2)-1)),",",LEFT(","&A1,FIND(A1,A1&A1,2))),2,999)
こんなのがありました。

min

>物凄い短縮なんですがね。
確かに、、ものすごい

jyo-3

わたしも、最初、ちょっとだけ、、配列:
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

{ と } が、抜けてました。  ↑   ごめんなさい。

jyo-3

で、
りす  さんと、同じ解法の雰囲気で・・・・
なぜ?88?と、思ったとき、、この、左と右をくっつける思考・・・・
を、入れたら、88になりまして、推論が当たってました。

y sakuda

からくちさん、まだかな?面白いのでてきそうなんだけど^^

min

からくちさんの面白いのが出てこないので、、
つなぎにもならない面白くもなんともない式
お見せするほどでもありませんが。。
>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)

y sakuda

なるほどーー

min

一週間たまっていたフラストレーションがやっと解けました。。

y sakuda

次回は私のキワモノですかね?
今回面白かっただけに嫌だな・・・・・

春

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)}

ジョー3

>次回は私のキワモノですかね?
なんだろ、、、こわいような、、、やはり、、、みたいけど、、、
>今回面白かっただけに嫌だな・・・・・
ん、、、先回も、面白かったですよ。

>jyo-3のfindには参りました。
find の先着は、りすさんですね、、、
続いて、、jyo-3 minmaxさん、、む印さんと、、、なだれこんだけど、、、

さて、さて、、

y sakuda

>なんだろ、、、こわいような、、、やはり、、、みたいけど、、、
やること自体結構難しいのと、手段があまりなさそうということです^^;

りす

第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

これを式にする。かなり複雑。

コメントの確認

コメントのプレビュー

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

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

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

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

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

処理中...

コメントを投稿

アカウント情報

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

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 メニュー