- ベストアンサー
エクセルで特定のデータを探す方法
- エクセルで管理している特定のデータをピックアップする方法を教えてください。
- 特定のデータが違う値段で入力されている場合、それを抽出したいと考えています。
- VBAを使って×印を付ける方法を教えてください。また、他の方法でも構いません。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! B列に同商品が3つ以上あり、仮に2つが同価格で他の1つの価格が違う場合は 「他の一つ」の行だけに「×」を表示したい訳ですよね? 一例です。 1行目は項目行でデータは2行目以降にあるとします。 Excel2007以降のバージョンの場合はD2セルに =IF(AND(COUNTIF(B:B,B2)>1,COUNTIFS(B:B,B2,C:C,C2)=1),"×","") Excel2003までのバージョンの場合は =IF(AND(COUNTIF(B:B,B2)>1,SUMPRODUCT((B$1:B$100=B2)*(C$1:C$100=C2))=1),"×","") という数式を入れオートフィルで下へコピーしてみてください。m(_ _)m
その他の回答 (5)
- chonami
- ベストアンサー率43% (448/1036)
数で判断するってのはどうなんでしょうねぇ・・・ もちろんあまりあり得ませんが5つのうち正しいのが1つだったらそれに×がつくと言う事なんですよね? どこかにマスタをつくっておいてVLOOKUPなどで品名を入れたら単価が入力される、というようなシステムの方が良さそうな気がしますが。
- KURUMITO
- ベストアンサー率42% (1835/4283)
VBAで処理するほどの必要性はないでしょう。関数で十分対応することができます。 すべてのデータが2行目から下方にあるとしてD2セルには次の式を入力して下方にドラッグコピーします。 =IF(B2="","",IF(ABS(C2-SUMIF(B:B,B2,C:C)/COUNTIF(B:B,B2))/(SUMIF(B:B,B2,C:C)/COUNTIF(B:B,B2))>0.02,"×","")) この式では果物の値段がその平均値に比べて2%を超える開きがある場合に×が表示されます。
- mu2011
- ベストアンサー率38% (1910/4994)
正規単価表を別シートに作成して検証した方がよいのではないでしょうか。 仮にSheet2のA列に商品名、B列に単価の表を作成します。 エクセル2007以上なら、 D1に=IF(COUNTIFS(Sheet2!A:A,B1,Sheet2!B:B,C1),"","×") エクセル2003以下なら、 D1に=IF(SUMPRODUCT((Sheet2!$A$1:$A$100=B1)*(Sheet2!$B$1:$B$100=C1)),"","×")
- noriechan
- ベストアンサー率30% (14/46)
アクセス(MS ACCESS)の方が楽では? クエリですぐ抽出できそうな・・・
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
ナニゆえVBAで?? D2: =IF(COUNTIF($B:$B,B2),IF(SUMIF($B:$B,B2,$C:$C)/COUNTIF($B:$B,B2)=C2,"","×"),"") 以下、コピー