個人事業主の方必見!確定申告のお悩み解決

下記のような事をやる数式が判らず、困っています。










上記で、重複するデータをひとつとカウントする方法(数式)を教えていただけますでしょうか?
つまり、「晴」「曇」「雨」の3つ、という値を導き出したいのです。

CountIf等、色々やってみたのですが、できなくて・・・。

お手数をおかけしますが、よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

No.2です。

ちょっと説明不足だったので補足しておきます。

No.2の最初の数式
=SUMPRODUCT((MATCH(A1:A8,A1:A8,0)=ROW(A1:A8))*1)

ROW(A1:A8) の A1:A8ですが、これはデータ範囲ではありません。
データが1行目以外から始まっている場合、
たとえば A2:A50にデータがあっても、ROW(A2:A50) とすると結果は 0になります。
ROW の( )内=引数は、セルの個数を指定してください。
A2:A50 がデータ範囲なら、セルの個数は 49個なので、ROW(A1:A49) とします。
必ず 1から指定してください。

データ範囲が A2:A50なら
=SUMPRODUCT((MATCH(A2:A50,A2:A50,0)=ROW(A1:A49))*1)

となります。

それと、No.2の 2つの式は両方とも、指定した範囲内に 1つでも空白セルがあるとエラーになります。
範囲内に空白セルがある場合とか、
いまは A2:A50にしかデータは入っていないけれど、今後もデータが増えるので、あらかじめ範囲を広くとっておきたいというような場合、
=COUNT(INDEX(1/(MATCH(A2:A100,A2:A100,0)=ROW(A1:A99)),0))

を試してみてください。
これも ROW の引数は、指定範囲のセルの個数です。
A2:A100 のセルの個数は 99個なので、A1:A99 と指定します。
データが何行目から始まっているかに関係なく、必ず 1から指定してください。
★もちろん範囲内に空白セルがなくても正しい結果を返すので、式は多少長くはなりますがコレがいちばんオススメ!!です。
なら、はじめっからコレだけにしとけって言われそうですが‥
    • good
    • 0
この回答へのお礼

皆様、色々と教えていただき、とても助かりました。
本当にどうもありがとうございました。

お礼日時:2005/12/26 16:23

例データ A2:A13


晴1


曇2
雪3
雨4


霧5
雹6


●作業列を使わない方法。
=SUM(IF(COUNTIF(OFFSET($A$2:$A$13,0,0,ROW(A2:A13)-1,1),A2:A13)=1,1,0))
と入れて、SHIFT+CTRL+ENTERを同時に押す。配列数式。
結果

●作業列B列を使う方法
B2に=IF(COUNTIF($A$2:A2,A2)=1,MAX($B$1:B1)+1,"")を入れる。
それをB3:B13に式を複写します。
そのB列のMAXをとっても6が出ます。
=IF(COUNTIF($A$2:B2,B2)=1,1,"")
として、その式を、B13まで式を複写し、SUMをとる手もあります。
    • good
    • 0

こんにちは~



データが A1:A8にあるとして、

=SUMPRODUCT((MATCH(A1:A8,A1:A8,0)=ROW(A1:A8))*1)

または

=SUMPRODUCT(1/COUNTIF(A1:A8,A1:A8))

でどうでしょうか?
    • good
    • 0

個数にもよりますが、ピボットテーブルで


並べ替えればいかがでしょうか?
    • good
    • 1

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【エクセル】1列内に複数ある同項目を、各項目一つずつに絞る方法

お世話になります。

アクセスで各商品コードごとに、「各施設の価格一覧」
集計をとるための下準備(各コード、重複なく一つずつに
絞られたテーブルを作りたいです)として、
エクセルシート内で無秩序に複数ある各商品コードから、
それぞれ一つずつだけ列挙されたシートを作りたいです。

1万行を超えているので、「集計」でまとめても
意味がないだろうし、この場合の対応策について
皆目思い浮かばないのですが、
よろしければアドバイスいただけないでしょうか。

よろしくお願い致します。

Aベストアンサー

こんばんは。

Accessを使うのも結構なのですが、Excelでは、フィルタオプションを使います。

メニューから
[データ]-[フィルタ]-[フィルタオプションの設定]

 指定した範囲(O)
 リスト範囲(L) に範囲を入力
 抽出範囲は、適当に1つのセルを選択し、

 □重複するレコードは無視する(R)にチェック

 OK

で、ユニーク・データが取れます。

これは、ユニーク・データを取るためのExcelのデータベース機能です。

Qエクセルで、列内が同じ名前を集計する方法は?

エクセルで以下のような表を作成したとします。

      A列   B    C    D
 1行   名前   項目   金額
 2    すずき  あいう  100
 3    すずき  かきく  200
 4    すずき  さしす  450
 5    さとう  あいう  150
 6    さとう  さしす  200
 7    はやし  あいう  250 
 8    はやし  かきく  170
 9    はやし  たちつ  980

B列の名前が同じ者の、金額の合計をD列に出したいのです。
D4に すずきの合計 750、D6にさとうの合計 350、
D9にはやしの合計 1150  というふうに。
全部で100人分位、データ行数は15000ほどあるのですが
これをさっとできるようにはどのようにしたら良いのでしょうか?

Aベストアンサー

次の方法は如何でしょうか。
D2に=IF(COUNTIF(A:A,A2)=COUNTIF($A$2:A2,A2),SUMIF(A:A,A2,C:C),"")を入力→D2を選択→フィルハンドル(D2セル枠右下の■)をダブルクリック
但し、C列途中に空白がある場合、その直前までしかコピーされませんので、空白セル前のセルを下方向にコピー後、同様にフィルハンドルをダブルクリックし下さい。

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qエクセルで重複した文字列を1としてカウントする方法

こんにちは
エクセルで親子の名簿を作っているのですが
複数子供がいる場合の世帯数をカウントしたいのですが
簡単な方法はありますか?
Microsoft Office Excel 2007です。

阿部
阿部
黒木
黒木
安藤
井上
田中

この場合5と数えたいです。
よろしくお願いします。

Aベストアンサー

初心者向きではないが、列は使わずともできます。
データの範囲が、A2~A99なら、
=SUMPRODUCT(1/COUNTIF(A2:A99,A2:A99))

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルのセルにある同じ値が何件あるかを調べたいのですが・・

教えてください。
マイクロソフトエクセルで各セルの値が何件あるかを調べたいのです。
例えば
A1セルに4300
A2セルに1500
A3   1000
A4   4300
A5   1000
・・・・・
など同じAセルに約300近くの値が入っていたとします。
この場合
4300 は 2件
1500 は 1件
1000 は 2件など「件」はつかなくて数値だけでも助かります。
代金の返金をする時に紙幣や硬貨を用意する為に同じ値がいくつあるかが知りたいです。
オートフィルタで同じ数値だけを出す方法もありますが、こちらの方法で出来ることでしたら教えて下さい。
宜しくお願い致します。
エクセルのバージョンは古くて2002です。

Aベストアンサー

こんばんは!
色々方法はあるかと思いますが・・・

一例です。

↓の画像のようにB列を作業用の列とさせてもらっています。

B2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(A1),"")
という数式を入れオートフィルでずぃ~~~!っと下へコピーします。

そして、D2セルに
=IF(COUNT($B$2:$B$1000)<ROW(A1),"",INDEX($A$2:$A$1000,SMALL($B$2:$B$1000,ROW(A1))))

E2セルに
=IF(D2="","",COUNTIF($A$2:$A$1000,D2))

という数式を入れ、D2・E2セルを範囲指定し、E2セルのフィルハンドルで
下へコピーすると画像のような感じになります。

尚、数式は1000行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、長々と書きましたが
参考になれば幸いです。m(__)m

Q2つのシート間での重複データのチェック

Excelについて教えてください。
以下の2つのシートがあります。

Sheet1
すずき 03-0000-0000
やまだ 03-1111-1111
たなか 03-2222-2222

Sheet2
03-1111-1111
03-4444-4444
03-0000-0000
03-2222-2222

Sheet1には名称と電話番号、Sheet2には別所から抽出した電話番号のみのデータがあります。
Sheet1のデータの中からSheet2に電話番号があるものだけを知りたいのですが、たとえばSheet1の 各行のC列 に Sheet2に一致する番号があった場合は●等付けるにはどうすればよいでしょうか。

よろしくお願いします

Aベストアンサー

シート1のC列に式を入れます。
=IF(ISNA(VLOOKUP(B1,Sheet2!A:A,1,FALSE))=TRUE,"-","●")

【式の説明】
シート1のセルB1の値が、シート2のA列に、存在する場合は●を、存在しない場合は-をセット。

Q同列にある複数の同じ番号をひとつにまとめる関数

EXCEL関数が未熟なのでわかる方に教えていただきたいのですが、同じ列に複数ある番号を一つだけにしたいのです。
決まった番号ではありません。

例えば、『12345』『23456』『34567』『12345』・・・・・のように、混じってます。
これが何百行もあるので、一つ一つチェックして探して・・・のような事をやると時間がかかって仕方ないし、間違いの元になりそうなので、関数でどうにかしたいと思っています。

どうかお知恵を拝借お願いいたします。

Aベストアンサー

こんばんは!
別列または別Sheetに表示する方法の一例です。

判りやすいのは↓の画像のように作業用の列を設ける方法だと思います。
データはA列の2行目以降にあるとして・・・

作業列B2セルに
=IF(COUNTIF(A$2:A2,A2)=1,ROW(),"")
という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。

結果のD2セルに
=IF(COUNT(B:B)<ROW(A1),"",INDEX(A:A,SMALL(B:B,ROW(A1))))
という数式を入れオートフィルで下へコピーすると
画像のような感じになります。

※ 元データが変わってもよいのであれば、別方法としてVBAで重複しているものを削除する方法もあります。m(_ _)m

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m


人気Q&Aランキング