« 第102回 アッパよ~ | メイン | 第103回 買い物履歴(野菜の部) »

2011年10 月15日 (土曜日)

コメント

ni

へぇ~ 2文字ずつ比較するのか。

私のは
82{=AND(EXACT(MID(IF(MOD(ROW(A:A),2),A1,UPPER(A1)),ROW(A:A),1),MID(A2,ROW(A:A),1)))}

からくち

minさんの式と考え方は同じのがあります
ただ、、、書き方が違うだけで

{=AND(EXACT(PROPER(MID("AA"&A1,ROW(A:A)*2,2)),MID("AA"&A2,ROW(A:A)*2,2)))}

くまぷー

私の82は

{'=PRODUCT(A1=A2,IF(EXACT(UPPER(MID(A1,ROW(A:A)*2,1)),MID(A2,ROW(A:A)*2,1)),1,))=1}

へんなミスが無ければよいのですが・・・

からくち

皆さんの式を拝見させて戴いてから
わたしの式を書こうと思っています、、、
理由は
>68文字というものもありますが
それよりは短いです

ただしその式より短い式が出ましたら、、、パス

からくち

>へんなミスが無ければよいのですが・・・
A1=abcdefg

A2=ABCDEFG
A2=ABcDeFg

からくち

>それよりは短いです
>へんなミスが無ければよいのですが・・・x2
間違い発見、、、故にパス

書いた式の数が多いだけ、、、か
情けない

min

今はPC使ってないので書けませんが最終的には68より短いです。

それはともかく
からくちさんの68未満是非見たいです。

min

あら 残念…

くまぷー

>>へんなミスが無ければよいのですが・・・
>A1=abcdefg
>A2=ABCDEFG

示されてみれば単純なミス・・・
またもや沈没・・・orz

min

一応確認ですが、row(a:a)って2007以上限定で良いんでしたっけ。
2003以下を持っていないので。

からくち

>あら 残念…
では、、、間違えの式を

{=COUNT(FIND(PROPER(MID("AA"&A1,ROW(1:50)*2,2)),"AA"&A2))=50}

因みに、、、PROPER・UPPER・EXACT・・・等を禁止に書いた式も
間違え発見(今、世界ふしぎ発見!をTVでやっている)
情けないx2

からくち

>あら 残念…
では、、、間違えの式を

{=COUNT(FIND(PROPER(MID("AA"&A1,ROW(1:50)*2,2)),"AA"&A2))=50}

因みに、、、PROPER・UPPER・EXACT・・・等を禁止に書いた式も
間違え発見(今、世界ふしぎ発見!をTVでやっている)
情けないx2

min

findですか、、
私もfindでやろうと思いましたが、うまくいきませんでした。

あとsubstituteもやろうと思いましたが長くなりそうなのでやめました。

ni

ROW(A:A)
2003で使用してます。

min

今回の問題のポイントは
a1=a2では、大文字小文字の区別をしない。
同じように、match、vlookup、search等々でも区別しない。

ただし、codeを使う場合はa1=a2が役に立つ。。

む印

82?あれぇっ?と、一瞬思いました、、
76
{=AND(EXACT(PROPER(MID("zz"&A1,ROW(1:50)*2,2)),MID("zZ"&A2,ROW(1:50)*2,2)))}
からくちさんのようにROW(A:A)は怖くて出来ませんでした、、

100
{=AND(MMULT({1,-1},CODE(MID(A1:A2,COLUMN(1:1),1)&1))=
MOD(COLUMN(1:1)+1,2-(COLUMN(1:1)>LEN(A1)))*32)}

130
=AND(SUM(MMULT({1,-1},CODE(MID(A1:A2,COLUMN(1:1)*2,1)&1))/32)
=INT(LEN(A2)/2),MMULT({1,-1},CODE(MID(A1:A2,COLUMN(1:1)*2-1,1)&1))=0)


アレから何もアイデアが閃かず、、結局最初出来たやつだけでした、、、、

min

>row(a:a)
>2003で使用してます

あら、2003でも出来るんでしたっけ。
じゃ、最短は65になるのかな。

min


一番最初
155{=AND(SUM(EXACT(MID(A1,ROW(1:99)*2,1),MID(A2,ROW(1:99)*2,1))-1)=-YEN((LEN(A2)-1)/2),SUM(EXACT(MID(A1,ROW(1:99)*2-1,1),MID(A2,ROW(1:99)*2-1,1))-1)=0,A1=A2)}
今見ると何をやっているのか分からない式、

最初はcodeを使わないでやった方が短くならないかなあと思っていたのですが、
結局codeを使った方が短くなりました。
ということでcodeを使った式
めんどくさいから作った順に残しておいたやつ全部貼り付けます。
76{=AND((CODE(MID(A2,ROW(1:50)*2-{1,0},1)&{"a","A"})*{1,-1}>96*{1,-1}),A1=A2)}
69{=AND(CODE(MID(A2,ROW(1:50)*2-{1,0},1)&"[")*{1,-1}>=91*{1,-1},A1=A2)}
70{=AND((CODE(MID(A2,ROW(1:50)*2-{1,0},1)&{"a","A"})>96)*1={1,0},A1=A2)}
68{=AND((CODE(MID(A2,ROW(1:50)*2-{1,0},1)&{"a","A"})>96)-{0,1},A1=A2)}
67{=AND((CODE(MID(A2,ROW(1:50)*2-{1,0},1)&"[")<{91,92})-{1,0},A1=A2)}
67{=AND(CODE(MID(A2,ROW(1:50)*2-{1,0},1)&"[")*{1,-1}>{90,-92},A1=A2)}
66{=AND((CODE(MID(A2,ROW(1:50)*2-{1,0},1)&"[")-91)*{1,-1}>=0,A1=A2)}

row(a:a)が有効ならそれぞれ1文字ずつ減るのかな。

む印

130はダメでした、、


なるほど!!

>&"[")-91)*{1,-1}
1,3,5・・・文字目は大文字でマイナス
2,4,6・・・文字目は小文字でマイナス

>A1=A2
で文字の入れ替えに対応

いいアイデアですねー^^


min

>いいアイデアですねー^^
a1=a2
を活用することは他の方も気づくと思っていたんですが。。

y sakuda

今、かえってきました。
私の82はniさんとまったく同じでした。

む印

>他の方も気づくと思っていたんですが。。
誰しも頭にはあったでしょうねd
くまぷーさんもやっておられましたし、、

しかしそれは、奇数目(小文字)と偶数目(大文字)を
一つの式でチェックするアイデアがあればこそ、ですねd

わたしも
>CODE(MID(A2,ROW(1:50)*2-{1,0},1)&
の辺りまでは実際やってましたが
>"[")-91)*{1,-1}
が、思いつかなかったです、、

逆に、minさんがそこに至ったのは
a1=a2を活用するためだったということかな?

y sakuda

CODEは最初考えたんですが、配列数式で先の方がエラーになっちゃうのであっさり放棄、Findも結局欠陥ありのしかできなかったです。
発想が貧困でした^^;

む印

>Findも結局欠陥あり
わかります、やりました
私も一度、からくちさんの
{=COUNT(FIND(PROPER(MID("AA"&A1,ROW(1:50)*2,2)),"AA"&A2))=50}
と全く同じ式かいてました、、^^;

min

>82?あれぇっ?と、一瞬思いました、、
どの82でしょ?

>私の82はniさんとまったく同じでした。
これは、基本形ということで私も作っておりました。

>くまぷーさんもやっておられましたし、、
そうなんですよね。
くまぷーさんがproductを持ってきたときには、一瞬たまげましたが。。

>a1=a2を活用するためだったということかな?
これは、最初からcodeとセットで考えていました。
a2をcodeで大文字、小文字の区別をしてしまえば、
a1と比較するのはa1=a2でよいし、
逆の言い方をすれば、
a1=a2は大文字小文字を区別しないで、判定してくれるから、
あとはa2が小文字、大文字の順になっているか確認するだけでいい。

>Findも結局欠陥あり
今回いろいろ考えていただいてみなさんに感謝です。
あ、ジョー3さんはどうでした~。どんな式ですか?


>"[")-91)*{1,-1}
>が、思いつかなかったです、、
提示した式にも書いているように、私の場合
奇数文字目(x)>91
偶数文字目(y)<91
の双方をひとつの式で判定するには
x*1>91*1
y*-1>91*-1
をまとめて書くというのが原点でして
{w,y}*{1,-1}>91*{1,-1}
から
{w,y}-91)*{1,-1}>0
にはすぐにはたどりつけませんでした。
ある意味勘でやってみたらできただけでして
{w,y}*{1,-1}>91*{1,-1}
を変換した
{w,y}*{1,-1}>{91,-91}が
{w,y}-91)*{1,-1}>0と同じ
になるということがいまいち納得できていないんですwww

しかし、今回の問題作成のきっかけは、
x=yでは、大文字小文字を区別しないで判定する。
exact(w,y)では区別する。
ということがきっかけでした。
しかし、結局x=yを使うことになろうとは。

それと、「abcd」を「aBcD」に変換するのに
text(x,"小大・・")みたいな技がないのかなあと思い、出題することにしました。

もしそういった技があれば、
=text(a1,"小大・・")=a2
で20台の解答が出たかもしれませんので、、期待していたんですが。。

min

あら〜
wとxが混在
wはxの間違いですm(__)m

からくち

大小の判定方法はいろいろあると思います
何方も書かれていませんが(良い方法ではない証拠)
例えば、、、
len(code(***)+3)は結果が2か3になり大小の判定が可能
ただし文字数は決して短くは無いでしょう

文字数を無視すれば
LOOKUP等々その方法は数限りないと思います
そういった意味では面白い問題でした
(自身では長短を無視して遊ばせていただきました)

ただ、ここの主旨は文字数ですので
その殆んどは除外

かず

う~ん、難解でした。

最初に、そのままを数式にしたつもりだったのですが…
{=AND(EXACT(IF(ISEVEN(ROW(A1:A100)),UPPER(MID($A$1,ROW(A1:A100),1)),MID($A$1,ROW(A1:A100),1)),MID($A$2,ROW(A1:A100),1)))}
とすると、エラーになってしまい、全く解らなくなりました。
どうも、ISEVEN関数は配列式に向かない様で、MODを使えば良かったんですね!

それにしても、皆さん流石です。

jyo-3

ゆうべ・・・遅くに帰ってきました。
問題の意味は、単純・・・
誘い手がたくさん。
・・・・
でも、逃れの妙手が・・・て、ような・・・

大道詰将棋・・・みたいな問題だったかも、、、

私は、rightで、攻めたような気がする。
(今、別のパソコン・・・)

む印

>row(a:a)が有効ならそれぞれ1文字ずつ減るかな。
これが、ストレスなく出来るとは思いませんでした、、

それと、66の式なら
91-CODE で、ひでもう一文字減らせました^^
{=AND(A1=A2,(91-CODE(MID(A2,ROW(A:A)*2-{1,0},1)&"["))*{1,-1}<1)}

む印

>91-CODE で、ひでもう一文字減らせました^^
コメントが変でした、、、

91-CODE で、もう一文字減らせました^^

y sakuda

>これが、ストレスなく出来るとは思いませんでした、、
むしろ2003までは大丈夫です。2007以降では行数が多い分重くなるw

む印

>2007以降では行数が多い分重くなるw
なるほど、納得です!


からくちさんの
>len(code(***)+3)
これもいいアイデアですね~^^

>ただし文字数は決して短くは無いでしょう
minさんのやり方で使ってみたらそうでもなかったです、
{=AND(LEN(CODE(MID(A2,ROW(A:A)*2-{0,1},1)&{0,"z"})+3)={2,3},A1=A2)}

むしろ、式として理解しやすくなった気がします。

ジョー3

皆さん凄いですね、

今回は、ペンキ塗り(事情があって、)と、、、
東京に3日で、、、・・・・・
・・・・・・・・・・・
忙しさで、、
作ったファイルまでなくなった。・・・・

たしか、、、
きちんと動いたようなのは、、、
108文字だった。

min

〈〉{3,2}のほうが短くならないかなあ?

む印

>〈〉{3,2}のほうが短くならないかなあ?
あっ!・・・・漢字かぁ~

{=AND(LEN(CODE(MID(A2,ROW(A:A)*2-{0,1},1)&"山")+3)<>{3,2},A1=A2)}
64文字でいけました!!

y sakuda

分かるような分からないような・・・・

む印

minさんの考え方を整理したら
60文字を切れることが判明しました!

jyo-3

>60文字を切れることが判明しました!
わわわ、、、執念ですねーーー

む印

すいません、早とちりで間違ってました、、m(__)m

jyo-3

>すいません、早とちりで間違ってました、、m(__)m
あはは、、、あいきょう、あいきょう・・・・・、、、、、

コメントの確認

コメントのプレビュー

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

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

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

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

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

処理中...

コメントを投稿

アカウント情報

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

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