問題を作り、できるかどうか検証した時作った76です。
=INDEX(B1:B46,LOOKUP(G3-1,COUNTIF(INDIRECT("C3:C"&ROW(3:46)),E3),ROW(4:47)))
何種類かつくりましたが、一番短くなったのは↓の48でした。
{=OFFSET(B3,1/LARGE((C4:C46=E3)/ROW(1:43),G3),)}
常連の皆さんが、立て続けに47と仰っておられるので、
もっと普通の手段がありそうなのですが、思いつきませんでした。
(y sakudaさん談)
47はもうお気づきのように
{=INDEX(B:B,SMALL(IF(E3=C1:C46,ROW(1:46)),G3))}
66と67
{=LOOKUP(G3,IF(C1:C46=E3,COUNTIF(OFFSET(C1,,,ROW(1:46)),E3)),B:B)}
{=VLOOKUP("*",IF(COUNTIF(OFFSET(C4,,,ROW(1:43)),E3)=G3,B4:B46),1,)}
投稿情報: む印 | 2010年1 月10日 (日曜日) 午後 08時14分
みなさんのを拝見する前にとりあえず・・・
76
{=INDEX(B4:B46,MATCH(E3&G3,C4:C46&COUNTIF(INDIRECT("C4:C"&ROW(4:46)),E3),))}
投稿情報: くまぷー | 2010年1 月10日 (日曜日) 午後 08時44分
頭ではcoutif使おうと思ったのですが、なぜか完成しませんでした。
なんか新鮮ですね。
countifがあれば、SもLも要りませんね。
私は頭が固い。。
sakudaさん
>{=OFFSET(B3,1/LARGE((C4:C46=E3)/ROW(1:43),G3),)}
なんでこんなややこしい式思いつくのだろう。
47は一緒ですね。
投稿情報: min | 2010年1 月10日 (日曜日) 午後 08時57分
LOOKUP系で最短だったもの。
単純ですが
52:{=HLOOKUP(B3,B:B,SMALL(IF(C4:C46=E3,ROW(4:46)),G3))}
VLOOKUPでは
60{=VLOOKUP("問題"&SMALL(IF(C4:C46=E3,ROW(1:43)),G3),A4:B46,2,)}
ちなみに47は2007では43か。そのほかのものも2007なら少し減る。
投稿情報: min | 2010年1 月10日 (日曜日) 午後 09時09分
くまぷーさんの76もいいなー。
投稿情報: min | 2010年1 月10日 (日曜日) 午後 09時12分
sakudaさんまだ来ないのかな?
ROWなし
57:{=OFFSET(B3,SMALL(IF(C4:C46=E3,--RIGHTB(A4:A46,2)),G3),)}
投稿情報: min | 2010年1 月10日 (日曜日) 午後 09時20分
>ROWなし
そういう事でしたかぁ~
--RIGHTB(A4:A46,2)→MID(A4:A46,3,3)*1
でもいいと言うことですねd
LOOKUP系で最短52も好きです!^^
投稿情報: む印 | 2010年1 月10日 (日曜日) 午後 09時35分
む印さんどうもです。
sakudaさんまだのようですので
sakudaさんのを参考にして作ったSLなし
69:=OFFSET(B2,SUM(N(MMULT(N(COLUMN(B:AR)<ROW(1:43)),N(C4:C46=E3))<G3)),)
無理やり
INDEX,OFFSET,SMALL,LARGE,ROW,COLUMN全部なし
104:{=HLOOKUP(B3,B3:B46,SUM(N(MMULT(N(TRANSPOSE(RIGHTB(A4:A46,2)+1)<--RIGHTB(A4:A46,2)),N(C4:C46=E3))
投稿情報: min | 2010年1 月10日 (日曜日) 午後 09時44分
>sakudaさん
>>{=OFFSET(B3,1/LARGE((C4:C46=E3)/ROW(1:43),G3),)}
>なんでこんなややこしい式思いつくのだろう。 ×2
難解のひとこと・・・( ̄~ ̄;) ウーン
投稿情報: くまぷー | 2010年1 月10日 (日曜日) 午後 09時47分
8時過ぎに覗いて、ちょっと他の用をしており、遅くなりました。
>47はもうお気づきのように
気づいてなかったです。
私の47はからくちさんのヒントで48のOffsetをIndexに変えたものです。
{=INDEX(B:B,1/LARGE((C4:C46=E3)/ROW(4:46),G3))}
当初Indexも考えたのですが、↓のようなアホやってて増えると思い込んでました。
{=INDEX(B:B,1/LARGE((C4:C46=E3)/ROW(1:43),G3)+3)}
くまぷーさんの76私のとは違いますね(発想は同じですが)
良く同じ字数になるもんですねーー
>なんでこんなややこしい式思いつくのだろう。
というか、IFを使うのを思いつかなかったための苦肉の策です・・・・・・
最初の頃、
MODを使っていて、Falseを上に上げるのにこんな事をやってました。
{=OFFSET(B3,SMALL(MOD((C4:C46=E3)*ROW(2:44)+49,50),G3),)}
このMODを省略するため、割り算を使うのを思いつきました。
minmaxさんの面白いですね。
A列を使っちゃうなんて発想はなかったw
もっともHLOOKUPのが良く分からないのでこれからじっくり眺めます。
投稿情報: y sakuda | 2010年1 月10日 (日曜日) 午後 09時47分
>IFを使うのを思いつかなかったための苦肉の策です・・・・・・
そうだと思いましたが、それでも思いつかないと思う。
投稿情報: min | 2010年1 月10日 (日曜日) 午後 09時53分
>A列を使っちゃうなんて発想はなかったw
自分の作を見直したら、初期に使ってました。
71
{=VLOOKUP("問題"&SMALL(MOD((C4:C46=E3)*ROW(C2:C44)+49,50),G3),A4:B46,2,)}
minmaxさんのやつの方が洗練されてますが・・・・
ところで、minmaxさんの104どこか落ちちゃって101文字になってエラーですね。
(まだ解読してないから、悪いとこわかりませんが)
投稿情報: y sakuda | 2010年1 月10日 (日曜日) 午後 09時54分
>そうだと思いましたが、それでも思いつかないと思う。
実は当初から自分でもかなりひねくれてると思ってました。
で、初日にみなさんあっさり47なんで、皆さんも同様に相当ひねくれた頭の持ち主だと・・・・w
投稿情報: y sakuda | 2010年1 月10日 (日曜日) 午後 09時56分
再掲
無理やり
INDEX,OFFSET,SMALL,LARGE,ROW,COLUMN全部なし
104:{=HLOOKUP(B3,B3:B46,SUM(N(MMULT(N(TRANSPOSE(RIGHTB(A4:A46,2)+1)<--RIGHTB(A4:A46,2)),N(C4:C46=E3))<G3)))}
投稿情報: min | 2010年1 月10日 (日曜日) 午後 09時59分
47文字、拝見しました。
そーかー、そういう風に短縮すればよかったのか~。^^;
色々試したけど短縮できなかったな~。
56文字です。
{=INDEX(B4:B46,SMALL(IF(C4:C46=E3,ROW(A1:A43),""),G3),)}
ROW関数の後のカンマを外すと空白を挿入させなくてもすむんですね。
なる~~。^^;
投稿情報: ますたあ | 2010年1 月10日 (日曜日) 午後 10時00分
minmaxさんのHlookupの52やっとわかりました。
なんじゃこりゃw
Hlookupの役果たしてないwww
投稿情報: y sakuda | 2010年1 月10日 (日曜日) 午後 10時01分
む印さんとminさんの式の中で使われている・・・
>SMALL(IF(C4:C46=E3,ROW(1:43)),G3)
こんなのぜんぜん思い浮かばなかった・・・
SMALLでこんなことが・・・
投稿情報: くまぷー | 2010年1 月10日 (日曜日) 午後 10時02分
ますたーさんもちゃんとIF思いついてますね^^;
私どこでド壺にはまったんだろ?
答え合わせ始まるまで一切思いつかなかったw
投稿情報: y sakuda | 2010年1 月10日 (日曜日) 午後 10時03分
>Hlookupの役果たしてないwww
INDEX&OFFSETが使えなければ、これが一番手っ取り早いと思いますが。
投稿情報: min | 2010年1 月10日 (日曜日) 午後 10時06分
あ、ますたあさんも↓を使ってますね~
>SMALL(IF(C4:C46=E3,ROW(1:43)),G3)
思いつかなかったのは私だけか・・・
投稿情報: くまぷー | 2010年1 月10日 (日曜日) 午後 10時07分
minさんの57、69、104と拝見して
やっと理解できますが・・・
>なんでこんなややこしい式思いつくのだろう。 NEW
投稿情報: む印 | 2010年1 月10日 (日曜日) 午後 10時10分
>なんでこんなややこしい式
MMULTは嫌い、、っていうか頭が混乱する。
私のは、sakudaさんの何個必要ですか?の解答例を参考にしただけです。
投稿情報: min | 2010年1 月10日 (日曜日) 午後 10時24分
>INDEX&OFFSETが使えなければ、これが一番手っ取り早いと思いますが。
確かに。
でも、両方禁止されたら、代替手段として思いつかなかったとオモフ・・・・・
>思いつかなかったのは私だけか・・・
IF使う発想は私も思いついてないw
minmaxさんの104再掲ありがとうございます。
なんで、1の行作るのに、こんなややこしいことをと思いましたが、要するにROW、COLUMN使わないという前提なんですねーー
これも思いつかない^^;
投稿情報: y sakuda | 2010年1 月10日 (日曜日) 午後 10時30分
>MMULTは嫌い、、っていうか頭が混乱する。
私は一応理系ですから行列計算に抵抗感はないんですが、Excelで使ったの、あれ以外に記憶がないw
投稿情報: y sakuda | 2010年1 月10日 (日曜日) 午後 10時32分
INDIRECT・MATCH等、使い方こそ違えど、、、色々な関数が使われている
出尽くしてしまったか、と思いきや、、、まだ登場していない関数がある、ある、ある。。。
=LOOKUP(G3,SUBSTITUTE(C1:C46&COUNTIF(OFFSET(C1,,,ROW(1:46)),E3),E3,)*1,B:B)
投稿情報: からくち | 2010年1 月10日 (日曜日) 午後 10時59分
からくちさんのやっと解読しました。
なるほど・・・・・
投稿情報: y sakuda | 2010年1 月10日 (日曜日) 午後 11時27分
解読できないのがたくさんです。
いや~、レベルが高くてついていけない・・・(T.T)
投稿情報: くまぷー | 2010年1 月11日 (月曜日) 午前 08時00分
いまさらですが、
む印さんのVLOOKUPを見直してみて、
こんなやり方は、全く思いつかないです。
こんな手法を知っているとは知識が深いなあ。
投稿情報: min | 2010年1 月11日 (月曜日) 午前 11時38分
>む印さんのVLOOKUPを見直してみて、
私も昨夜はイメージ追っかけただけだったんで、今朝見直してました。
良く考えるとどう動いているのか頭がこんがらがってきた^^;
投稿情報: y sakuda | 2010年1 月11日 (月曜日) 午後 12時03分
>む印さんのVLOOKUPを見直してみて
うーん、そんなに言われるほど、、、
だいぶ前、こちらで似たような式を
やったようにも記憶しているのですが・・・
こちらで遊んでいたときの苦し紛れの産物なのか、
どこかで見たのか、さっぱり覚えておりませんが、
いつの間にやら身についていたというw・・・?
投稿情報: む印 | 2010年1 月12日 (火曜日) 午後 06時17分
ちらっ。。。。
>いつの間にやら身についていたというw・・・?
げーーーー
おめーーーわけーなーーー
としよりじょーは、、、みにつかんなーーー
あ、、、、、
sakudaさんと同じ年だから、、、
こんな言い訳はできんね――ー
投稿情報: | 2010年1 月12日 (火曜日) 午後 08時11分