問題はこちらを参照。
【解答】
D4に ・・・
=DCount($P$1:$Q$43,1,{{"数学","=<" & Left(D$3,Find("-",D$3)-1)},{"数学",">=" & Mid(D$3,Find("-",D$3)+1,2)},{"英語","=<" & Left($C4,Find("-",$C4)-1)},{"英語",">=" & Mid($C4,Find("-",$C4)+1,2)}})
・・・と入力。そしてM13までコピペ。(悪児さんの指摘により、一部修正)
【´・ω・`】:このように複数条件による集計が標準関数で簡単にできてしまうところが
三四郎の素晴らしいところだな。おそらく1999年発売の「三四郎9」から
(あるいはもっと前から)可能だったんだと思う。
(●`ε´●):Excelだとこの手のことをやろうとすると配列数式に頼ったりして、ちょっと
初心者には厳しいところがあるが、三四郎だと条件式を単純に並べるだけで
出来てしまう。おいらはもともとはEXCEL派なんだけどこの辺りの所は
三四郎の良さを素直に認めざるを得ない。
【´・ω・`】:ExcelではCountIf関数やSumIf関数は複数条件には対応していなかった。
複数条件に対応したCountIfs関数やSumIfs関数が登場したのは
EXCEL2007になってからだからね。
JustSystemさん、もっと宣伝上手になろうよ。
さてExcelでの解答だけど作業列無しの一発解答はエクセルバカさんが
凄いのを出してきそうなので敢えて作業列ありのやつを提示しよう。
【Excel番外編】
1.適当な場所に下のような変換テーブルを作る。この場合はD17:E17。
得点 | 行・列番号 |
0 | 13 |
10 | 12 |
20 | 11 |
30 | 10 |
40 | 9 |
50 | 8 |
60 | 7 |
70 | 6 |
80 | 5 |
90 | 4 |
2.セルR2に =VLOOKUP(P2,$D$18:$E$27,2) と入力。S43までコピペ。
3.セルT2に =R2*100+S2 と入力。T43までコピペ。
4.D4に =COUNTIF($T$2:$T$43,COLUMN(D4)*100+ROW(D4)) と入力。
M13までコピペ。
まずは、作業セル&CountExact
R2に下の式を入れ、下コピー
=P2 DIV 10-(P2=100) & Q2 DIV 10-(Q2=100)
D4に下の式を入れて、コピペ
=CountExact(10-Col(A1) & 10-Row(A1),$R$2:$R$43)
実用なら、これでやるでしょう。(^^)(^^)
投稿情報: 悪児 | 2007年8 月16日 (木曜日) 午後 08時03分
くまぷーさんの式だけど、
$C5
は
$C4
の間違いでしょう? (^^)(^^)
ところで、Exwに入れないぞ。(^^;)(^^;)
投稿情報: 悪児 | 2007年8 月16日 (木曜日) 午後 08時08分
悪児の105文字、正攻法は、
D4に↓を入れて、コピペ
=DCount($P$1:$Q$43,1,{{1,">=" & Right(D$3,2)},{1,"==" & Right($C4,2)},{2,"=<" & $C4*1}})
三四郎では、文字列でも、
先頭が小文字の数字だと、
その部分だけを数値として取りだして
計算してくれます。それを利用。
投稿情報: 悪児 | 2007年8 月16日 (木曜日) 午後 08時15分
悪児の87文字は、
=DCount($P$1:$Q$43,1,{{1,">" & E$3*1},{1,"" & $C5*1},{2,"<" & $C4+1}})
です。このままでは、1ヶ所数字がおかしくなるのですが、悪児のシートでは、
ご覧のように(↓)ちゃんと表示されます。
http://members2.jcom.home.ne.jp/r_watanabe/tmp/sokan_zuru.jpg
もちろん、その仕掛けは、お分かりですよね。(^^)ゞ
投稿情報: 悪児 | 2007年8 月16日 (木曜日) 午後 08時29分
あれ、式が変だ・・・
もう一度・・・(^^;)(^^;)
=DCount($P$1:$Q$43,1,{{1,">" & E$3*1},{1,"" & $C5*1},{2,"<" & $C4+1}})
投稿情報: 悪児 | 2007年8 月16日 (木曜日) 午後 08時33分
やっぱり、おかしい。(^^;)(^^;)
よく見ると、105文字の方も。
不等号の影響か・・・
投稿情報: 悪児 | 2007年8 月16日 (木曜日) 午後 08時35分
>=P2 DIV 10-(P2=100) & Q2 DIV 10-(Q2=100)
なるほど、得点を一つにまとめるのが
くまぷーのよりもスマートですね。(^。^)
勉強になります。
>$C5は$C4の・・・
はい、その通りです。D4の式をコピペしたつもりが。D5の式をコピペしてしまいました。(^^ゞ
>ところで、Exwに入れないぞ。(^^;)(^^;)
たしかに。
>=DCount($P$1:$Q$43,1,{{1,">=" & Right(D$3,2)},{1,"==" & Right($C4,2)},{2,"=<" & $C4*1}})
この式をコピペしたらD4からM13まで全て0になってしまいました。?(・_。)?(。_・)?
投稿情報: くまぷー | 2007年8 月16日 (木曜日) 午後 08時42分
あれ、悪児さんのコメントが知らないうちに増えている(?_?)
投稿情報: くまぷー | 2007年8 月16日 (木曜日) 午後 08時52分
全角にしたら、送れるかな?
105字です。
半角にして、コピペして下さい。
=DCount($P$1:$Q$43,1,{{1,”>=” & Right(D$3,2)},{1,”=<” & D$3*1},{2,”>=” & Right($C4,2)},{2,”=<” & $C4*1}})
投稿情報: 悪児 | 2007年8 月16日 (木曜日) 午後 09時11分
行った、行った (^^)(^^)
では、87文字です。
=DCount($P$1:$Q$43,1,{{1,”>” & E$3*1},{1,”<” & D$3+1},{2,”>” & $C5*1},{2,”<” & $C4+1}})
投稿情報: 悪児 | 2007年8 月16日 (木曜日) 午後 09時13分
あ、できました。できました。(^。^)
>もちろん、その仕掛けは、お分かりですよね。(^^)ゞ
「-2」を「計」に見せているのかな?
三四郎にそんな機能ありましたっけ?
一番、勉強になったのは
文字列100-90に*1で100になること・・・
文字列100-10に+1すると101になるんですね。φ(・_・)メモメモ
計*1は0になるし・・・
勉強になったわい。(^。^)
投稿情報: くまぷー | 2007年8 月16日 (木曜日) 午後 09時50分
いきなりですが
D4で
=SUM(($P$2:$P$43>=RIGHT(D$3,2)*1)*($Q$2:$Q$43>=RIGHT($C4,2)*1))-SUM($C$4:C4,D$3:D3)
Ctrl+Shift+Enter
D13までフィルコピー
D4:D13をM列までフィルコピー
投稿情報: えくせるバカ | 2007年8 月17日 (金曜日) 午前 10時28分
もう一つ
=SUM((-SUBSTITUTE(INT($P$2:$P$43/10)&”.”&INT($Q$2:$Q$43/10),10,9)=ROW(A1)/10+COLUMN(A1)-11)*1)
のCtrl+Shift+Enter
で各行・列にフィルコピー
こちらは96文字
投稿情報: えくせるバカ | 2007年8 月17日 (金曜日) 午前 10時37分
>$E3*1
これなら +$E3 でもいけますよね。85文字にできますね。
C14に 「-2計 」とかしたんですよね?
(↑たくさん入れたスペースが消えてる?)
Even を使ったもの。97文字。
=DCount($P$1:$Q$43,1,{{1,"<=" & +D$3},{1,">=" & Even(E$3)},{2,"<=" & +$C4},{2,">=" & Even($C5)}})
条件式を省略して、85文字。
=DCount($P$1:$Q$43,1,{{1,">=" & Even(E$3)},{2,">=" & Even($C5)}})-Sum($C$3:C4,D$3:D3)
打ち止めかと思いきや、演算の見直しにより、83文字。(^^)
=DCount($P$1:$Q$43,1,{{1,">=" & E$3*1.01},{2,">=" & $C5*1.01}})-Sum($C$3:C4,D$3:D3)
半角の”<”と”>”で囲った所が、コメント欄入力枠内でも、確認ボタンを押すとことごとく消えてしまいます。
HTMLタグと認識されているみたいに。条件式に混ざっていたら大変なことになるなぁ。
半角スペースを複数入れても1個にされるし。
コメントに数式を書き込む時は、不等号”<”を全角にしましょう。
投稿情報: きっちー | 2007年8 月17日 (金曜日) 午前 11時03分
124文字だった。
投稿情報: ジョー3 | 2007年8 月17日 (金曜日) 午後 05時54分
えくせるバカさんの「いきなり」の式ときっちーさんの「条件式を省略」の式・・・
ほんと、びっくりです。もの凄い複合参照の使い方ですね。よく思いつくもんだなぁ、二人とも・・・。(゜_゜;)
えくせるバカさんの「96文字」。これは悪児さんの「作業セル&CountExact」と同じ発想なのかなあ・・・。式がもの凄いから、にわかには判断がつきません。(^^ゞ
きっちーさんの「Even」を使った式・・・
これなんか、Even関数の模範的使用例として
参考書に載せたいくらいですね。
三四郎ヘルプに出ているEven関数の
使用例では、この関数がいったい何の役に立つのか全くわからん。
悪児さん、きっちーさん、えくせるバカさん・・・
みなさん、凄すぎます。脱帽です。m(__)m
投稿情報: くまぷー | 2007年8 月17日 (金曜日) 午後 06時36分
皆さん凄そうなので、
もっちょっとがんばって・・・
だめだーーー
94文字
sum if int row column と
割り算、足し算、配列でした。
もチョット気づいても、90文字でした。
もう限界です。
投稿情報: ジョー3 | 2007年8 月17日 (金曜日) 午後 06時37分
>124文字だった。
ジョー3さん、どもです。(^。^)
式をアップしてちょ!!
投稿情報: くまぷー | 2007年8 月17日 (金曜日) 午後 06時37分
あ、午後06時37分で、ジョー3さんと同時だった!!
投稿情報: くまぷー | 2007年8 月17日 (金曜日) 午後 06時39分
では、90は数え間違い。92文字でした
{=SUM(IF(INT($P$2:$P$43/10.1+0.09)=13-COLUMN(),IF(INT($Q$2:$Q$43/10.1+0.09)=13-ROW(),1,),))}
投稿情報: ジョー3 | 2007年8 月17日 (金曜日) 午後 06時44分
ジョー3さん、凄いです!
この10.1とか0.09とかの組合せ、
これらの定数はどうやってでてきたんだろう!!
みなさん、それぞれの発想が素晴らしいです。
本当に面白いですね~(^。^)
投稿情報: くまぷー | 2007年8 月17日 (金曜日) 午後 07時21分
ぜんぶが、わかる、くまぷーさんがすごいかも、・・・・まだ、他の方のはきちんと見てません。
見ると、自分の案が、でなくなるから。
投稿情報: ジョー3 | 2007年8 月17日 (金曜日) 午後 08時35分
端数を使って、差を非関与にする。
今回は、なぜか浮かびませんでした。(^^)ゞ
条件をひとつ消す、
これは思いついてちょっとやってみたけど、挫折。(^^;)(^^;)
というわけで、脱帽です。>きっちーさん。
Excel版は、まだ見ていません。(^^)ゞ
計のところの技は、
二人ともご存じないようですね。(^^)(^^)
暫く秘密にしておきましょうか。(^^)ゞ
投稿情報: 悪児 | 2007年8 月17日 (金曜日) 午後 10時11分
考え方のシンプルな、最初の124文字ぐらいの長いヤツです。
{=SUM(IF(INT(IF($P$2:$P$43=100,99,$P$2:$P$43)/10)=13-COLUMN(),IF(INT(IF($Q$2:$Q$43=100,99,$Q$2:$Q$43)/10)=13-ROW(),1,0),0))}
投稿情報: ジョー3 | 2007年8 月18日 (土曜日) 午前 09時33分
>二人ともご存じないようですね。(^^)(^^)
ははは、違っていましたか(^^ゞ
>考え方のシンプルな、最初の124文字ぐらいの長いヤツです。
そう、100があるから面倒くさいんですよね。(^^ゞ
投稿情報: くまぷー | 2007年8 月18日 (土曜日) 午後 06時21分