この問題、実は三四郎ならば楽勝です。
=Search(">''",B2:L12) 21文字ですね。
空文字はシングルクウォーテーションマーク2つで表しています。
さてエクセルに戻ります。直接入力した文字列ならば
=PHONETIC(B2:L12) で一発なんですが、この問題の場合は
B2:L12は参照なので、こんなに簡単にはできません。
やけくそでやるならばB2~L12までの全てのセルを&で連結するなんて
荒技も考えられますが、どうひいき目に見ても力づくで,スマートさに欠けます。
で・・・考えたのが下の式です。
{=CHAR(MAX(CODE(B2:L12&0)))}
配列数式28文字 (赤文字の部分を入力してCtrl,Shift,Enterの3つのキーを押下して確定します)
まずCODE関数を使います。これは第6問「3人のニコちゃん」でも
使いましたが、配列数式として使うことが出来ます。ただ CODE関数を
単純にCODE(B2:L12)として使うと空文字のコードを調べてしまうので
エラーになってしまいます。そこでCODE(B2:L12&0)のように一工夫します。
こうすれば鳥(アルファベット)以外は0のコード、48を返すことになります。
鳥(アルファベット)のコードは65(Aのコード)以上なので、CODE(B2:L12&0)に
MAX関数をかぶせれば必ず鳥(アルファベット)のコードになります。
そして仕上げに鳥(アルファベット)のコードにChar関数をかぶせて
コードを文字列化して終了です。
「かごめ」・・・如何だったでしょうか?
当然の事ながら、配列数式の28は同じですねーー
裏口の25はむ印さんにお任せw
後は、表示されている位置を決めて表示するやつですから、出すの控えときます。
(こちらの最短は73でした)
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 08時03分
ところで、くまぷーさん、最初の出題者解答は30台だったようですが、どういうのだったんでしょうか?
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 08時07分
> {=CHAR(MAX(CODE(B2:L12&0)))}
が、2007の2003互換では、
{=CHAR(MAX(CODE(B:L&0)))}
で、うまく行く。
2003では、
B1:L65535なら、動くのに、
B1:L65536だと、駄目ってのは、面白い
2007の2003モードは、100万行以上を
65536行に、押さえているので、
ほーーー良いと言うことかねーー
・・・・・ま、わからんけど、、
投稿情報: ジョー3 | 2009年3 月28日 (土曜日) 午後 08時10分
ジョー3の配列なしの40台ってどんなのかな?
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 08時22分
>ジョー3の配列なしの40台ってどんなのかな?
シンプルな、こんなのでした、
でも、Bだけで良いのかーーー
む印さん!!てな感じで、、、
出張時間切れでした・・・・・・・
=VLOOKUP(MAX(Data!A1:A121),Data!A1:B121,2,0)
44
=VLOOKUP(MAX(Data!A:A),Data!A:B,2,0)
36
投稿情報: ジョー3 | 2009年3 月28日 (土曜日) 午後 08時25分
ああ、ジョー3の裏口ですか。
これ、25に後一歩だった^^
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 08時36分
しかし、考えて見ると私はDataのA列を使う発想は全く無かったな^^;
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 08時39分
>これ、25に後一歩だった^^
そそ、、、で、25になったつもりが、(紙で)
・・・・・時々おかしくなって、
???わからん。呑んだから、,
投稿情報: ジョー3 | 2009年3 月28日 (土曜日) 午後 08時39分
>そこでCODE(B2:L12&0)のように一工夫します。
おお、そうだったんですか。
一つ勉強になりました。
答の糸口さえ見つけられれば
決して解けない問題ではなかったんですね。^^;
今週は根気?気力が足りませんでした。(反省
でも、一応、答を出せる式は作りました。
参加しましたという事でハズカシながら...。(^^ゞ
{=INDEX(B2:L12,SUM((B2:L12<>"")*ROW(A1:A11)),SUM((B2:L12<>"")*COLUMN(A1:K1)))}
投稿情報: ますたあ | 2009年3 月28日 (土曜日) 午後 08時56分
こんばんは~
&0だったんですね。
&” ”として、+2文字の30でした。
投稿情報: かず | 2009年3 月28日 (土曜日) 午後 09時07分
>ところで、くまぷーさん、最初の出題者解答は30台だったようですが、どういうのだったんでしょうか?
{=CHAR(SUM(IF(B2:L12="",,CODE(B2:L12))))}
{ }を数え忘れて他ので41でした(^^ゞ
・・・それと後ろの正面から
=VLOOKUP("?",Data!B:B,1,0)
26文字です。
投稿情報: くまぷー | 2009年3 月28日 (土曜日) 午後 09時10分
ますたあさん、どもです。
>おお、そうだったんですか。
>一つ勉強になりました。
私もはじめから気がついていたわけではありません (^^ゞ
投稿情報: くまぷー | 2009年3 月28日 (土曜日) 午後 09時11分
こんばんはゎー、、
minさん、sakudaさんも
既にお気づきのようですが、
裏25はくまぷーさんの26から0を取った
=VLOOKUP("?",Data!B:B,1,)
これを表に置き換えると
配列式58
{=HLOOKUP("?",INDEX(2:12,MAX((B2:L12>"")*ROW(1:11)),),1,)}
もう少し丁寧に64文字で
=HLOOKUP("?",OFFSET(1:1,MAX(INDEX((B2:L12>"")*ROW(1:11),)),),1,)
という感じでした。
ズル3~4や、からくちさんの式も楽しみ^^
投稿情報: む印 | 2009年3 月28日 (土曜日) 午後 09時13分
3~4文字は
「手動計算」にしてアルファベットのでている
セルを=で直接参照します (^^ゞ
投稿情報: くまぷー | 2009年3 月28日 (土曜日) 午後 09時13分
>裏25はくまぷーさんの26から0を取った
=VLOOKUP("?",Data!B:B,1,)
うぉ~、そうだったのか?! orz
投稿情報: くまぷー | 2009年3 月28日 (土曜日) 午後 09時14分
マスターさんが、Indexタイプ出しちゃったので・・・・
正面からで73
{=OFFSET(A1,SUM(LEN(B2:L12)*ROW(A1:A11)),SUM(LEN(B2:L12)*COLUMN(A1:K1)))}
裏口からで57です
{=INDIRECT("Data!B"&SUM(LEN(Data!B1:B121)*ROW(A1:A121)))}
{=OFFSET(Data!B1,SUM(LEN(Data!B1:B121)*ROW(A1:A121))-1,)}
25は
>=VLOOKUP("?",Data!B:B,1,0)
最後の0を省略しても動くので25になります^^
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 09時18分
>3~4文字は
>「手動計算」にしてアルファベットのでている
>セルを=で直接参照します (^^ゞ
=クリックで、、
f9 かと、おもた。。
(手動なし)
投稿情報: ジョー3 | 2009年3 月28日 (土曜日) 午後 09時19分
む印さんの64
上手いな^^
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 09時28分
最初はSum路線で行ってたので、33文字でした。
数分後にSum⇒Maxを思いつきました^^
{=CHAR(SUM(CODE(B2:L12&0))-5760)}
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 09時30分
>「手動計算」にしてアルファベットのでている
>セルを=で直接参照します (^^ゞ
やっぱりですね。
>{=CHAR(SUM(CODE(B2:L12&0))-5760)}
も全く同じもの有り。
出す価値のあるオリジナルのものが・・・
投稿情報: minmax | 2009年3 月28日 (土曜日) 午後 09時33分
>最初はSum路線で行ってたので、
おらも、、そだそだ、、
投稿情報: ジョー3 | 2009年3 月28日 (土曜日) 午後 09時42分
>最初はSum路線で行ってたので、
普通にminとmax路線から行きました。
minmaxですから・・
投稿情報: minmax | 2009年3 月28日 (土曜日) 午後 09時47分
>普通にminとmax路線から行きました。
>minmaxですから・・
www
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 09時48分
y sakudaさんの様に、
LENを使う方が式がスマートに見えますねd^^
>セルを=で直接参照します (^^ゞ
ズルってそういうことかぁー^^
投稿情報: む印 | 2009年3 月28日 (土曜日) 午後 10時08分
>LENを使う方が式がスマートに見えますねd^^
最初私も( >"")でやってました。
字数は変わらないのですが、私もLENの方が形が良いと思って、そちらを提示しました^^
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 10時25分
そうそう、裏口もので37
=INDEX(Data!B:B,MATCH("?",Data!B:B,))
もありました、、
投稿情報: む印 | 2009年3 月28日 (土曜日) 午後 10時36分
>=INDEX(Data!B:B,MATCH("?",Data!B:B,))
MATCHで"?"も出来るんですね。
裏で一番最初にやったのが
=INDEX(Data!B:B,MATCH(MAX(Data!A:A),Data!A:A,0))
こんなんでした。
投稿情報: minmax | 2009年3 月28日 (土曜日) 午後 10時44分
Matchも全然かんがえなかった^^;
しかし、長いのの方がいろいろ発想があって面白いですねーー
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 10時57分
全く同じ式
若しくは殆んど同じ式が先に幾つも出ています
でもまだ出ていない式も残っているようです
しかしその前に一つ
>でもA列~M列が非表示では7文字必要では
>いえいえ、そんなことはありません。
>3~4文字で十分です。(^^ゞ
>セルを=で直接参照します (^^ゞ
直接参照するセルを割り出す術は?
投稿情報: からくち | 2009年3 月28日 (土曜日) 午後 10時59分
>直接参照するセルを割り出す術は?
くまぷーさんは、手動計算に変更して、表示されているセルを直接指定して参照するという方法ですよね。
もともとずるとおっっしゃっていますし、お遊びの部分もありですからそれでよいと思いますが・・。
少なくとも、私などは、
>でもA列~M列が非表示では7文字必要では
の意味も分かりません。
投稿情報: minmax | 2009年3 月28日 (土曜日) 午後 11時21分
>直接参照するセルを割り出す術は?
目視ですってば!!
だからズルだって・・・(^^ゞ
投稿情報: くまぷー | 2009年3 月28日 (土曜日) 午後 11時24分
>目視ですってば!!
そう思っていました
だからこそ
>でもA列~M列が非表示では
と書いた次第です
>の意味も分かりません。
当たり前ですが勿論これもズルです
範囲参照
と言う事で
被っていないと思われる式を
(同じ式・若しくは似た式は避けます)
見落としていましたらごめんなさい
ただし被らないように書きますので
決して良い式にはならないと思います
{=CHAR(QUARTILE(CODE(B2:L12&0),4))}
{=CHAR(PERCENTILE(CODE(B2:L12&0),1))}
{=CHAR(MAX(FIND(B2:L12,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"))+64)}
{=CHAR(SUM(-56,FIND(B2:L12,"ABCDEFGHIJKLMNOPQRSTUVWXYZ")))}
{=CHAR(SUM(CODE(B2:L12&0)-48)+48)}
{=CHAR(TEXT(MOD(AVERAGE(CODE(B2:L12&0)),1)*121,0)+48)}
=LOOKUP(1,0/LEN(Data!B1:B121),Data!B:B)
=CHAR(LOOKUP(99,CODE(Data!B1:B121)))
悪ふざけ版
=CHAR(MAX(MATCH(CODE(B2:L12&0),ROW(1:90),0)))
投稿情報: からくち | 2009年3 月28日 (土曜日) 午後 11時45分
からくちさん、良くこんなに沢山思いつきますねーー
私なんかひとつ思いつくとそれで終わりw
投稿情報: y sakuda | 2009年3 月28日 (土曜日) 午後 11時52分
>良くこんなに沢山思いつきますねーー
似たようなものは、
{=CHAR(SUM(CODE(B2:L12&0)-47.6))}
位しかないです。
投稿情報: minmax | 2009年3 月29日 (日曜日) 午前 12時01分
>良くこんなに沢山思いつきますねーー
わたしはお遊びなので
良い式か否かは問いませんので
では序に ジョー3 さんの
>=VLOOKUP(MAX(Data!A1:A121),Data!A1:B121,2,0)
この式をヒントに
何もVLOOKUPを使う事は無いのですが
{=VLOOKUP(1,CHOOSE({1,2},RANK(Data!A1:A121,Data!A1:A121),Data!B1:B121),2,0)}
何の意味も無い無駄式
投稿情報: からくち | 2009年3 月29日 (日曜日) 午前 12時02分
>良い式か否かは問いませんので
ここ、皆さんそんな感じではw
面白ければいい!
投稿情報: y sakuda | 2009年3 月29日 (日曜日) 午前 12時11分
あ、、、うれしいです。
{=CHAR(SUM(CODE(B2:L12&0)-48)+48)}
この式は私も、同じでした。
きょうも、これから雪の青森へ・・・・・
また夜・・・・皆さんの式を詳しく・・・
投稿情報: ジョー3 | 2009年3 月29日 (日曜日) 午前 05時24分
>良くこんなに沢山思いつきますねーー
そう、その上、QUARTILEとかERCENTILEとか
今まで一度も使ったことのない関数まで・・・
からくちさんていったい、何をやっている人なんだろう(?_?)
投稿情報: くまぷー | 2009年3 月29日 (日曜日) 午前 06時10分
>>良くこんなに沢山思いつきますねーー
>今まで一度も使ったことのない関数まで・・・×2
からくちさんの解答はサービス満点でうれしいですね^^
しかし、いつもながらLOOKUPの使い方は勉強になるなぁー
投稿情報: む印 | 2009年3 月29日 (日曜日) 午後 02時42分