[[20140927145232]] 『同日に同名がある場合はカウント1のみ』(らい) ページの最後に飛ぶ

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

 

『同日に同名がある場合はカウント1のみ』(らい)

日付ごとに午前・午後・夜間で名前を入れます。

A   B   C
9/1 午前 ABC商事
9/1 午前 赤井不動産
9/2 午後 笠原銀行
9/3 夜間 坂田株式会社
9/4 午前 XYZ旅行
9/4 午後 XYZ旅行
9/5 午前 和田建設
9/5 午後 和田建設
9/5 夜間 和田建設
9/6 午前 ABC商事
9/6 午後 ABC商事
9/6 午後 笠原銀行

これを別の「月報」シートで集計する際に
9/1 2
9/2 1
9/3 1
9/4 1(同日・同名なので2ではなく1にしたい)
9/5 1(同日・同名なので3ではなく1にしたい)
9/6 2(同日・同名もあるので3ではなく2にしたい)

この様なカウントをするにはどうすればいいのでしょうか><

< 使用 Excel:Excel2003、使用 OS:Windows7 >


Sheet1のD列を作業列にしてセルD1に =C1=C2 を入力して、下へコピー

「月報」シートのセルB1に
=COUNTIFS(Sheet1!A:A,月報!A1,Sheet1!D:D,"FALSE")
下へコピー
(wisemac21) 2014/09/27(土) 16:59


 こんにちは。

 wisemac21 さんに倣って作業列に、

 =SUMPRODUCT(1/SUMPRODUCT(($A$1:$A$13=A1)*($C$1:$C$13=C1)))

 「月報」シートB1セルに

 =SUMPRODUCT((もとのシート!$A$1:$A$13=A15)*もとのシート!$E$1:$E$13)

 ではどうでしょう。2003ってsumifやcountif使えなかったような?
(mas_k) 2014/09/28(日) 11:07

2003だったか!COUNTIFSは使えませんね。失礼しました。
(wisemac21) 2014/09/28(日) 16:05

お二方回答ありがとうございます!
返信遅れてすみません。
Excel2003ではなく2013をボタン選択したつもりが
2003が選択してたみたいです(涙

ですのでCOUNTIFSは使えます!

で、wisemac21様のをやってみたんですがどうも一致しなくて><
明日以降PC触れるので、もう一回mas_k様のも含めてやってみます!

どうも二日連続で同じ企業が使った場合のcountがおかしいようです。
たとえば、9/3・4午前午後XYZ旅行が2日間連続で使用した場合はカウント0になっちゃいます。

(らい)


 一度式を立てたが2003ということで書き込まなかった式。
 (2007以降で使える)

 元データが「明細」シートで、最大100行までデータがある場合。
 月報シートのB1セルに

 =IF(A1="","",COUNT(0/FREQUENCY(IFERROR(MATCH(IF(明細!A$1:A$100=A1,明細!A$1:A$100&"!"&明細!C$1:C$100,""),明細!A$1:A$100&"!"&明細!C$1:C$100,0),""),ROW(A$1:A$100))))

 なお、式を入力する場合にShiftキーとCtrlキーを押しながらEnterキーで式を確定(この時式が{}で囲まれればOK)して下へフィルコピー。

 追記
 注意を忘れていた。
 データ範囲が異なる場合、式中のセル範囲を変更するが「ROW(A$1:A$100)」は必ず1からデータの最大行としてくれ。

 例えば元データが5行目から最大50行の場合
  =IF(A1="","",COUNT(0/FREQUENCY(IFERROR(MATCH(IF(明細!A$5:A$50=A1,明細!A$5:A$50&"!"&明細!C$5:C$50,""),明細!A$5:A$50&"!"&明細!C$5:C$50,0),""),ROW(A$1:A$50))))
(ねむねむ) 2014/09/30(火) 16:59

こんにちは。

 もし、私の式を試してみられるのであれば、
 作業列の式の外側の SUMPRODUCT はずして下さい。何でついちゃったのか。

 2003でないのなら、1/COUNTIFS($A$1:$A$13,A1,$C$1:$C$13,C1)でもいいかもしれません。

 集計シートの式も、SUMIF使えますね。
(mas_k) 2014/09/30(火) 17:35

おはようございます。
mas_k様のやり方で昨日じっくりやってみました。

出来ました!^^
求めていた数値が出来てきた感激しました。

で、応用なのですがあの数式をもとに
複数の会議室情報を1シートに入力したいのです。

1つの会議室であれば完璧なのですが、
会議室1,2,3と同時に同社が使った場合、カウントがすべてかぶります。
なので、COUNTIFSの条件に部屋が一致した場合といれても出ないんです・・・

A   B   C      D
9/1 午前 ABC商事    会議室1
9/1 午前 赤井不動産  会議室2
9/2 午後 笠原銀行    会議室3
9/3 夜間 坂田株式会社 会議室3
9/3 夜間 坂田株式会社 会議室2
9/3 夜間 坂田株式会社 会議室1
9/4 午前 青井建設   会議室1
9/4 午後 青井建設   会議室1
9/4 午前 青井建設   会議室2
9/4 午後 青井建設   会議室2

<集計>
日付 会議室1 会議室2 会議室3
9/1  1     1     0
9/2             1
9/3  1     1     1
9/4  1     1     0

(らい) 2014/10/03(金) 08:32


 使っている会社が無い場合に0にするのかスペースにするのか不明瞭だが。
 前回と同じく元データが「明細」シートで最大100行目まで。

 集計!B2:=IF($A2="","",COUNT(0/FREQUENCY(IFERROR(MATCH(IF((明細!$A$1:$A$100=$A2)*(明細!$D$1:$D$100=B$1),明細!$A$1:$A$100&"!"&明細!$C$1:$C$100&"!"&明細!$D$1:$D$100,""),明細!$A$1:$A$100&"!"&明細!$C$1:$C$100&"!"&明細!$D$1:$D$100,0),""),ROW(A$1:A$100))))
 Shift+Ctrl+Enterで確定後、右及び下へフィルコピー。
 注意点は前回と同じ。

(ねむねむ) 2014/10/03(金) 09:22


 =IF($A2="","",SUMPRODUCT((MATCH(REPT(明細!$C$1:$C$100,(明細!$A$1:$A$100=$A2)*(明細!$D$1:$D$100=B$1)),INDEX(REPT(明細!$C$1:$C$100,(明細!$A$1:$A$100=$A2)*(明細!$D$1:$D$100=B$1)),),)=ROW($1:$100))*(明細!$A$1:$A$100=$A2)*(明細!$D$1:$D$100=B$1)))
 
(GobGob) 2014/10/03(金) 10:22

お二方、早々にありがとうございます!!

無事出来ました(感涙

初心者な私は記述されてる関数を全部理解してませんが
本当にありがとうございました><
(らい) 2014/10/03(金) 11:15


 こんばんは。

 既に、ねむねむ さん、GobGob さん、から適切な回答あり、
 解決のようですね。何よりです。

 ところで、
 作業列、集計シートともに条件を1つ加えるだけではできませんでしたか。

 お役に立てなかったようですね。すみません。

(mas_k) 2014/10/03(金) 18:08


コメント返信:

[ 一覧(最新更新順) ]


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