D1のセルに任意の数値、E1のセルに任意の記号(アルファベット等)を入れて
F1に=D1&E1と関数を入れて文字列を作り、データベースを作成しています。現在弊社でダブルカウントが問題となっておりましてG列にダブルカウントの判定式を作りたいのです。F列の中でダブルカウントしていない場合はOK、ダブルカウントした場合はNGと出るようにしたいのですが、関数が組み立てられません。
ご存知の方、是非御教え下さい。宜しく御願い致します。
(例)
A B C D E F G
1 1 A 1A OK
2 2 A 2A OK
3 3 A 3A OK
4 1 A 1A NG
・
・
・
100 1 A 1A NG
No.1ベストアンサー
- 回答日時:
判定を表示する列をG列として、
G1は必ずOK
G2~は、
G2 =IF(COUNTIF(F$1:F1,"=" & F2)<>0,"NG","OK")
G3 =IF(COUNTIF(F$1:F2,"=" & F3)<>0,"NG","OK")
G4 =IF(COUNTIF(F$1:F3,"=" & F4)<>0,"NG","OK")
・・・
---
COUNTIF で判定する前の行までに同じ文字の個数をとって、
0ならないのでOK、0以外なら同じ文字があるので、NG
伝わりますか?
No.10
- 回答日時:
回答番号ANo.2,7,8,9です。
それから、既に入力されているデータに関しては兎も角、今後、新たにデータを入力する際に、入力規則を使用して、重複データを入力出来なくする事も出来ます。(但し、セル自体のコピー&ペーストに対しては、入力規則で制限する事は出来ません)
D列~G列を選択
↓
Excelのバージョンが、
Excel2007以降の場合は、[データ]タグ、
Excel2007よりも前の場合は、メニューの[データ]ボタン
をクリック
↓
Excel2007以降の場合は、「データツール」グループの中にある[データの入力規則]、
Excel2007よりも前の場合は、現れた選択肢の中にある[入力規則]
をクリック
↓
現れた「データの入力規則」ウィンドウの[設定]タグをクリック
↓
「入力値の種類」欄をクリックし、現れた選択肢の中にある[ユーザー設定]をクリック
↓
「数式」欄に次の数式を入力
=COUNTIF($F:$F,INDEX($F:$F,ROW()))=1
↓
「データの入力規則」ウィンドウの[OK]ボタンをクリック
No.9
- 回答日時:
回答番号ANo.2,7です。
それから、私は使用した事が無いため、詳しくは知りませんが、以下のサイトに、重複したデータを削除したり、重複していないデータのみを抽出する方法が掲載されています。
【参考URL】
http://pc.nikkeibp.co.jp/pc21/tech/excel43/40/
http://office.microsoft.com/ja-jp/excel-help/HP0 …
No.8
- 回答日時:
回答番号ANo.2,7です。
それから、単にG列にNGと表示させるだけではなく、条件付き書式を使用して、NGの行の色が変わる様にしておかれれば、何処にNGがあるのか判り易くなりますし、新たにデータを入力する際にも、重複したデータを入力してした事が直ぐに判るため、データを入力した段階で、データの入力者自身が、重複データを入力した事に気付いて取り消す事も可能になるかと思います。
その設定方法ですが、ExcelのバージョンがExcel2007よりも前のバージョンと、Excel2007以降のバージョンでは、操作方法が異なります。
【Excel2007よりも前のバージョンの場合】
D1セルを選択
↓
メニューの[書式]をクリック
↓
現れた選択肢の中にある[条件付き書式]をクリック
↓
現れた「条件付き書式の設定」ウィンドウの左端の欄をクリック
↓
現れた選択肢の中にある「数式が」をクリック
↓
「条件付き書式の設定」ウィンドウの左から2番目の欄に次の数式を入力
=INDEX($G:$G,ROW())="NG"
↓
「条件付き書式の設定」ウィンドウの[書式]ボタンをクリック
↓
現れた「セルの書式設定」ウィンドウの[パターン]タグをクリック
↓
好きな色の四角形をクリック
↓
「セルの書式設定」ウィンドウの[OK]ボタンをクリック
↓
「条件付き書式の設定」ウィンドウの[OK]ボタンをクリック
↓
D1セルにカーソルを合わせて、マウスを右クリック
↓
現れた選択肢の中にある[コピー]をクリック
↓
D列~G列の、条件付き書式を設定したいセル範囲を、範囲選択
↓
選択範囲を示す黒い太枠の内側にカーソルを合わせて、マウスを右クリック
↓
現れた選択肢の中にある[形式を選択して貼り付け]をクリック
↓
現れた「形式を選択して貼り付け」ウィンドウの中にある「書式」と記されている箇所をクリックして、チェックを入れる
↓
「形式を選択して貼り付け」ウィンドウのの[OK]ボタンをクリック
【Excel2007以降のバージョンの場合】
D1セルを選択
↓
[ホーム]タグをクリック
↓
[条件付き書式] をクリック
↓
現れた選択肢の中にある[新しいルール] をクリック
↓
現れた「新しい書式ルール」ウィンドウの[数式を使用して、書式設定するセルを決定] をクリック
↓
現れた「次の数式を満たす場合に値を書式設定」欄に次の数式を入力
=INDEX($G:$G,ROW())="NG"
↓
「新しい書式ルール」ウィンドウの[書式]ボタンをクリック
↓
現れた「セルの書式設定」ウィンドウの[塗りつぶし] タグをクリック
↓
好きな色の四角形をクリック
↓
「セルの書式設定」ウィンドウの[OK]ボタンをクリック
↓
「新しい書式ルール」ウィンドウの[OK]ボタンをクリック
↓
選択しているセルを変えずに、再度[条件付き書式] をクリック
↓
現れた選択肢の中にある[ルールの管理] をクリック
↓
現れた「条件付き書式ルールの管理」ウィンドウの「書式ルールの表示」欄が[現在の選択範囲]となっていることを確認
↓
「ルール(表示順で適用)」欄が「数式:=INDEX($...」となっている行の「適用先」欄の内容を
=$D:$G
に変更する
↓
「条件付き書式ルールの管理」ウィンドウの[OK]ボタンをクリック
以上です。
No.7
- 回答日時:
回答番号ANo.2です。
それから、御質問の主旨からは少し外れますが、以下の様な方法で、別シート等に、最初にそのデータが現れた行のデータのみを、隙間なく表示した表を、自動的に表示させる事も出来ます。
今仮に、元データが並んでいるシートがSheet1であり、Sheet2に重複無しのデータを並べるものとします。
まず、Sheet1のH1セルに次の関数を入力して下さい。
=IF(INDEX($F:$F,ROW())="","",IF(COUNTIF(INDEX($F:$F,1):INDEX($F:$F,ROW()),INDEX($F:$F,ROW()))=1,ROW(),""))
次に、Sheet1のH1セルをコピーして、Sheet1のH2以下に貼り付けて下さい。
次に、Sheet2のA1セルに次の関数を入力して下さい。
=IF(ROWS($1:1)>COUNT(Sheet1!$H:$H),"",INDEX(Sheet1!D:D,SMALL(Sheet1!$H:$H,ROWS($1:1))))
次に、Sheet2のA1セルをコピーして、Sheet2のB1セルに貼り付けて下さい。
次に、Sheet2のA1~B1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。
これで、Sheet2に重複無しのデータが、途中に隙間などない形で表示されます。
尚、最初にそのデータが現れた行のデータではなく、最後ににそのデータが現れた行のデータを表示させる場合には、Sheet1のH1セルに入力する関数を次の様なものとして下さい。(その他の列の関数は変更しません)
=IF(INDEX($F:$F,ROW())="","",IF(COUNTIF(INDEX($F:$F,1):INDEX($F:$F,ROW()),INDEX($F:$F,ROW()))=COUNTIF($F:$F,INDEX($F:$F,ROW())),ROW(),""))
No.6
- 回答日時:
既に答えは出ていますが、IF関数とISNA関数とVLOOKUP関数の組み合わせでも実現できます。
チェックしたいセルの値が表にあるかどうかを検査して、表に無い(N.A)なら"OK"と表示し、表にあるなら"NG"と表示します。
例えば、「=IF(ISNA(VLOOKUP(F6;F$1:$G5;2;0));"OK";"NG")」となるわけです。どれも利用頻度が高い関数なので是非とも使いこなしてもらいたい関数です。特にVLOOKUP関数は使い勝手が良いです。
ただしこの構文は、 OpenOfficeの関数なのでEXCELとは若干構文が異なるかも知れません。
No.4
- 回答日時:
=IF(COUNTIF(F:F,F:F)>1,"NG","OK")
一つ前提条件として欠けている問題があり、例えば、1行目に 1Aが出現した時点で 1AはOKですよね。
でも、後日 4行目に また1Aが出た時点で、 1行目のOKが NGに変わってしまうのです。
それはいいのですか?
No.2
- 回答日時:
G1セルに入力する関数は、次の様なものにすれば良いと思います。
=IF(INDEX($F:$F,ROW())="","",IF(COUNTIF(INDEX($F:$F,1):INDEX($F:$F,ROW()),INDEX($F:$F,ROW()))=1,"OK","NG"))
下記の関数
=IF(F1="","",IF(COUNTIF(F$1:F1,F1)=1,"OK","NG"))
でも可能ですが、上記の様に参照先を指定する際に、INDEX関数とROW()を組み合わせた方が、セルを削除した際に、関数が入力されている行と、参照先の行がずれてしまう心配が無くなります。(列方向には、ずれますから、セルを削除する場合には、「上方向にシフト」して下さい)
又、同じ理由から、F1セルに入力する関数も、
=INDEX($D:$D,ROW())&INDEX($E:$E,ROW())
とした方が便利です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) countif関数について質問 4 2022/06/14 12:11
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Excel(エクセル) 【Excel関数、count系】どなたか教示下さると助かります。 Excelでシフトを管理しており、 2 2022/07/09 06:34
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) EXCEL関数(数式)を教えてください 2 2022/06/08 18:32
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) エクセルについて教えてください。 1回目が80以上(数字) or 対象外 (文字列)or (空欄) 2 2022/10/17 11:42
- Excel(エクセル) Excel countif関数で取り消し線のセルをカウントしないようにしたい countif関数で文 2 2023/08/21 10:27
- その他(Microsoft Office) 【スプレッドシート】白色のセルをカウントしたい 2 2023/02/24 07:39
- Excel(エクセル) excelで同日を除いて数えたい 5 2023/01/15 22:08
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
Microsoft365の一部を解約したい
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
エクセルでXLOOKUP関数...
-
Outlook 電源OFFの受診の仕方
-
office365って抵抗感ないですか?
-
Microsoft365で自動保存が出来...
-
Microsoft Formsの「個人情報や...
-
Outlook 2021 アカウント設定時...
-
Office2021を別のPCにインスト...
-
漫画喫茶のローカルフォルダに...
-
teams設定教えて下さい。 ①ビデ...
-
Microsoft 365 の一般法人向け...
-
何このステータスバー
-
Excel テーブル内の空白行の削除
-
マクロ1があります。 A1のセル...
-
Excelで時間計算(負)
-
【スプレッドシート】白色のセ...
-
Officeの字体
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
【スプレッドシート】指定の日...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Office 2021 Professional Plus...
-
エクセルで例えば、関数を使っ...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルで例えば、A1に㈱ベ...
-
理由を教えてください。
-
エクセルでXLOOKUP関数...
-
マイクロソフト オフィスについて
-
VLOOKUP関数について
-
teams設定教えて下さい。 ①ビデ...
-
Googleのスプレッドシートでシ...
-
【Excel VBA】PDFを作成して,...
-
Microsoft365で写真をアルバム...
-
Outlook で宛先が複数の場合の人数
-
Excel テーブル内の空白行の削除
おすすめ情報