[[20060328201802]] 『件数を数える』(苦学生) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『件数を数える』(苦学生)

 以前「件数を数える」を見て残してありました。それを使ってたくさんの時間割
が合っているか確かめたいと思うのですが、単純にコピーしてセル番地を変えるだ
けでは11行目以下はうまく結果があらわれず0になってしまいます。
 多分NはnoでMATCHは一致するものと解釈して一致しないものを数える・・のではな
いかと思いますが、=ROW(E1:E3)は分かりません。
     A     B      C   D
 1  福岡	 国語  国語 国語
 2  福岡	 算数  国語 国語 
 3  大阪	 理科  算数 算数
 4  福岡	 社会  理科 理科
 5  東京	 体育  社会 理科
 6  静岡	 家庭  体育  3 ←=SUMPRODUCT(N(MATCH(D1:D3,D1:D3,)=ROW(D1:D3)))でOK
 7  福岡	 社会  家庭
 8  福岡	 社会  家庭
 9  福岡	 家庭  家庭
 10 東京	 国語  家庭
 11  4	 6	6 ←この列はコピーして貼り付けるとどこもOK 
 12 福岡	国語   国語
 13 福岡	算数   国語
 14 大阪	理科   算数
 15 福岡	社会   理科
 16 東京	体育   社会
 17 静岡	家庭   体育
 18 福岡	社会   家庭
 19 福岡	社会   家庭
 20 福岡	家庭   家庭
 21 東京	国語   家庭  
 22  0←ここに=SUMPRODUCT(N(MATCH(A12:A21,A12:A21,)=ROW(A12:A21)))が入って
います。が、結果は0でした。
     ↑A11をコピーしてセル番地を直してA22に入れても0になる

 =SUMPRODUCT(N(MATCH(A12:A21,A12:A21,)=ROW(A12:A21)))は私がA22用に番地を直
した物をコピーしました。これでは件数を数えてくれませんでしょうか?
 xpで2003です。

 以前、私が説明したものです。分りにくいかもしれませんが。
[[20040205133124]]『人数を数えたい』(はな) 
(kenbou) 


 D6=SUMPRODUCT(N(MATCH(D1:D5,D1:D5,)=ROW($1:$5)))

 A11=SUMPRODUCT(N(MATCH(A1:A10,A1:A10,)=ROW($1:$10)))
 ★右にコピー

 A22=SUMPRODUCT(N(MATCH(A12:A21,A12:A21,)=ROW($1:$10)))
 ★右にコピー(A11をコピーしてもいいですよ!)
 (Maron)

 (kenbou)様有り難うございました。
 =ROW(A12:A21)))が何か意味がありそうなことはわかりました。A1から数えて何番目か
ら件数を数えるのか,タイトル行との「つじつま合わせ」と書いてありました。それで意
味は分かりませんでしたが同じ場所に-11を入れ=ROW(A12:A21)-11))としたらぴったり数
が合いました。
 他の場所でも試してみました。調べる行の一つ上のセルの行番号を見てその数だけマイ
ナスしました。そしたら、いずれも数が合いました。それでよいのでしょうか。
 (苦学生)
 返信を書いている打ちに(Maron)様からも回答いただき有り難うございました。$で縛っ
たということはコピーしても番地がかわらない・・ということですね。コピーさせても
らってはりつけたらバッチリでした。でも、それだと私の思った「上から11番目までを
引く」ということは間違っているように思えてきました。
 6番目で求めるときはその一つ上の$1:$5。 11番目で求めるときは$1:$10。 22番目で
求めるときも$1:$10。それもA列という指定がないのにB列でもC列でも貼り付けOKでた。
 これでいくと調べる項目の行数なのかなと思います。もしそれだったらA123から東京福
岡・・とかいてそれが10行ある時は$1:$10でよいのかなと思います。これを送ったらい
ろいろな場所で確かめたいと思います。
 (kenbou)様(kenbou)様ありがとうござい'' ます''。まだ「ました」ではなく「ます」
にしておきます。

 SUMPRODUCT関数は配列関数です。
http://pc21.nikkeibp.co.jp/special/hr/
ここを参照して下さい。配列数式が理解できれば、多分
[[20040205133124]]『人数を数えたい』(はな)
ここで書いた事が理解できると思います。
うまく説明出来ませんが、MATCH関数の結果を1・2・3・・・と規則的になっている
数を数えているに過ぎません。
(kenbou)

 有り難うございます。読ませて頂きます。
 (苦学生)


 'MATCH関数に関する理解も重要' だと思います。
指定する範囲内で、上あるいは左から何番目 を返しますから、
 =MATCH(A1,A1:A10,FALSE) でも =MATCH(B100,B100:B200,FALSE) でも 『1』となります。
これに、ROW(A1)=1 や C100セルの場合での ROW()-99=100-99=1 もしくは ROW(C100)-99=100-99=1
を論理式の条件に組み入れています。
(sin) EXCELのヘルプも見てくださいね!  ※ちょっと手直ししました。


 (sin)さんありがとうございます。'MATCH関数もとても難しそうですが勉強します。昨
夜は(kenbou)さんに教えて頂いたhttp://pc21.nikkeibp.co.jp/special/hr/を読みに行
って第2回まで読みました。なかなか面白かったです。ROW(A1)=1についておぼろ月夜
ぐらいにはなりました。この学校でいろいろ教えてもらって、名札作成ソフト?や学級
編成ソフト?児童名検索ソフト?(これはひらがな検索なのでまだ一人だけ検索できて同姓同名のものは検索不能ですが)成績表作成ソフト?など多くのものができて結構職
場の皆さんから喜ばれています。(つい自慢してしまいました)
 ただ、この学校の立ち読み中毒が唯一の欠点ですが・・・(苦学生)


 【参考】
 ◆今頃、このようなことを言うと、混乱されるかもしれませんが!
 ◆Maronは、途中空白があったり、まだ未入力箇所があってもERRにならない、下の式を、よく使用しています!
 =COUNT(INDEX(1/(MATCH(A1:A100,A1:A100,)=ROW(A1:A100)),))
 (Maron)

 ----(Maron)さんありがとうございます。
 重宝させていただきます。(苦学生)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.