重複を除いてデータ数をカウントする「関数」を教えてください。よろしくお願いいたします。
単純に全データからカウントするのであれば、sumproduct等を使えばできますが、困っているのは、一部のデータ(晴のみ)から、重複データを除いて(同じ日に複数回稼働していても1とカウント)集計するという点です。
稼働日 天気 管理番号
2月10日 晴 10022
2月20日 晴 31555
2月20日 晴 10022
2月20日 晴 10022
2月20日 晴 10022
2月24日 晴 44200
2月25日 雨 31555
2月25日 雨 10022
【導きたい答え】
「晴れの日」の「管理番号10022」の稼働日数は、「2」日でした。
(4個ではなく、2個(2日)とカウントしたい)
*Excel2016を使用しています。
*実際はもっと多くのデータが対象となります。あくまで例は簡略化したものです。
*ピボットやVBA?ではなく、エクセル関数で求めたいです。
*可能であれば、作業領域でいったん計算して再集計する等ではなく、一度で求められる方法がいいです。
No.3ベストアンサー
- 回答日時:
No.1です。
ユーザー定義関数の方法をと思っていましたが、VBAはダメ!というコトなので・・・
ただ作業用の列は使ってもOKのようなので、一例です。
↓の画像のようにD列を作業用の列としています。
作業列D2セルに
=IF(AND(B2=G$1,C2=G$2),IF(COUNTIFS(A$2:A2,A2,B$2:B2,B2,C$2:C2,C2)=1,1,""),"")
という数式を入れこれ以上データはない!というくらいまで下へフィル&コピー!
結果のG3セルには
=SUM(D:D)
という数式を入れています。m(_ _)m
ありがとうございます。
とてもすっきりとした式で求められるのでびっくりしました。
=IF(AND(B2=G$1,C2=G$2),IF(COUNTIFS(A$2:A2,A2,B$2:B2,B2,C$2:C2,C2)=1,1,""),"")
この式なんですが、IF(COUNTIFS(A$2:A2,A2,B$2:B2,B2,C$2:C2,C2)=1,1,""),"")
の部分って何を計算?しているんでしょうか。
稼働日の情報、天気の情報、管理番号の情報が 1,1,空白 ならば、空白?
No.4
- 回答日時:
No.3です。
>IF(COUNTIFS(A$2:A2,A2,B$2:B2,B2,C$2:C2,C2)=1,1,""),"")
>の部分って何を計算?しているんでしょうか。
説明を少しだけ・・・
前半部分の
>IF(AND(B2=G$1,C2=G$2)
は問題ないですよね。
(画像のB列がG1、C列がG2と一致するものだけを対象としています)
さて、上記のIF関数が「TRUE」の場合ですが
前回アップした画像の配置で
2行目から検索し
A列・B列・C列が重複するデータがある場合、最初に出現する行だけに「1」が表示されるようにしています。
これが質問文の中で一番重要な部分になると思います。
※ どこか使っていない列の2行目に
=COUNTIFS(A$2:A2,A2,B$2:B2,B2,C$2:C2,C2)
という数式を入れ、フィルハンドルで下へコピーしてみてください。
2行目以降、A~C列が重複するデータの出現回数が表示されます。
その中の最初に出現した行だけ(「1」の行だけ)を作業列に表示するようにしています。
あとは単純にプラスすれば質問の回答がそのまま簡単に導き出せます。
No.2
- 回答日時:
添付図参照
D1: =A2&"_"&B2&"_"&C2
E2: =IF(COUNTIF(D$2:D2,D2)>1,"",A2)
F2: =IF(AND(B2=G$3,C2=G$2),E2,"")
F1: =COUNT(F2:F500)
ご回答ありがとうございます。
関数を入れてみたのですが、下記の通り「0」となります。
色がついている箇所(稼働日数や管番、天)というのがよくわかりません。
そこは手入力すべきなのか、自動で返ってくるものなのでしょうか。
Fの列はちゃんと計算式を入れても空白の結果となります。
稼働日 天気 管理番号 稼働日_天気_管理番号 0
2月10日 晴 10022 43141_晴_10022 2月10日
2月20日 晴 31555 43151_晴_31555 2月20日
2月20日 晴 10022 43151_晴_10022 2月20日
2月20日 晴 10022 43151_晴_10022
2月20日 晴 10022 43151_晴_10022
2月24日 晴 44200 43155_晴_44200 2月24日
2月25日 雨 31555 43156_雨_31555 2月25日
2月25日 雨 10022 43156_雨_10022 2月25日
No.1
- 回答日時:
こんばんは!
関数で作業列なしで!となると結構厄介だと思います。
手っ取り早くVBAでの一例です。
↓の画像のような配置になっていて、
F1・F2セルに各条件を入力した時点でマクロが実行されるようにしてみました。
シートモジュールにしてください。
Private Sub Worksheet_Change(ByVal Target As Range) '//この行から//
If Intersect(Target, Range("F1:F2")) Is Nothing Or Target.Count > 1 Then Exit Sub
Dim myDic As Object
Dim i As Long, lastRow As Long, cnt As Long
Dim myStr As String
Dim myR
If WorksheetFunction.CountBlank(Range("F1:F2")) = 0 Then
Set myDic = CreateObject("Scripting.Dictionary")
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
myR = Range(Cells(2, "A"), Cells(lastRow, "C"))
For i = 1 To UBound(myR, 1)
If myR(i, 2) = Range("F1") And myR(i, 3) = Range("F2") Then
myStr = myR(i, 1) & "_" & myR(i, 2) & "_" & myR(i, 3)
If Not myDic.exists(myStr) Then
myDic.Add myStr, ""
cnt = cnt + 1
End If
End If
Next i
Range("F3") = cnt
Set myDic = Nothing
Else
Range("F3").ClearContents
End If
End Sub '//この行まで//
※ A~C列の変更ではマクロは動きません。
F1またはF2セルのデータが変わった時点でマクロが実行されます。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Excel(エクセル) Countifよりも早く重複数をカウントする方法ありますか? 18 2022/07/04 13:39
- Visual Basic(VBA) 日付を重複させずに数えたい 4 2022/12/04 16:26
- Visual Basic(VBA) VBA 連続する名前ごとに集計 3 2022/05/21 18:24
- Excel(エクセル) Excelでの複数条件のカウントについて 1 2022/09/25 07:40
- 中途・キャリア 契約社員で在職中ですが、正社員目指して転職活動中です。 20代半ばの男です。 2社から内定を頂きまし 5 2022/04/29 13:39
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
- Excel(エクセル) excelで同日を除いて数えたい 5 2023/01/15 22:08
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
EXCELで条件に合致したデータから、さらに重複するデータを1と数える
その他(Microsoft Office)
-
複数条件で重複しないデータをカウントする方法
Excel(エクセル)
-
SUMPRODUCT 複数条件の重複データ件数
Excel(エクセル)
-
-
4
フィルターかけた後、重複を除いてカウントしたい。 すみませんアドバイスお願いします! 取引コード 販
Excel(エクセル)
-
5
EXCEL 重複するデータを1としてカウントする方法
Excel(エクセル)
-
6
Excelで複数条件 かつ 重複を削除した値を求める式
Excel(エクセル)
-
7
Excel関数で重複と空白を除いてデータの件数を求める方法
Excel(エクセル)
-
8
エクセルで重複を除いた日付のカウント(条件付き)
その他(Microsoft Office)
-
9
(エクセル関数)指定期間内で重複を除いて数え上げる方法
Excel(エクセル)
-
10
日付を重複を除いてカウントしたいです
Excel(エクセル)
-
11
Excelで半角の文字を含むセルを探したい
Excel(エクセル)
-
12
エクセルで何種類のデータがあるかを調べる?
Excel(エクセル)
-
13
《Excel2000》SUMPRODUCT関数での集計、空白行がある場合は?
Excel(エクセル)
-
14
オートフィルタの選択肢数を数えたいのですが・・・
Excel(エクセル)
-
15
【VBA】コピー&複数個所のペースト繰り返し
Excel(エクセル)
-
16
エクセル関数 日別の重複しないデータの個数を求める
その他(Microsoft Office)
-
17
Excelで、条件と一致する最後のセルを検索したい
Excel(エクセル)
-
18
エクセルで特定の文字列を含む値を重複を除いて数える
Excel(エクセル)
-
19
【Excel関数】UNIQUE関数で0"を返さない方法?"
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報
「作業領域でいったん計算して再集計する等ではなく、一度で求められる方法希望」と書きましたが、無理そうであれば、いったん「作業領域」で計算する方法でもかまいません。
改めてピボットやVBAは対象外でお願いします。
出来ました!
すみません、いろいろ試していたら、2になりました!
入力項目だったんですね。
ありがとうございます。