• ベストアンサー

Excelのデータ種類の出力方法【再質問】

Excelで、例えばA1から下に「あ」「い」「う」「あ」「い」「い」「う」「う」「う」とデータが入力されている状態で、(1)『この列には「あ」と「い」と「う」の3種類のデータがある』、(2)『「あ」は2個、「い」は3個、「う」は4個データがある』という2点を出力させる方法をご存知の方がいらっしゃいましたら宜しくお願い致します。 (1)については、以前、下の方法を教えていただき解決できたのですが。。。 A1から下に文字が入力されているとします。 B1に =IF(COUNTIF($A$1:A1,A1)=1,ROW(A1),"") C1に =IF(COUNT(B:B)<ROW(A1),"",INDEX(A:A,SMALL(B:B,ROW(A1))))

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 (1) 範囲内に空白セルがなければ、 =SUMPRODUCT(1/COUNTIF(A1:A20,A1:A20)) です。(範囲は適宜変更) 範囲内に空白セルがあるなら、 =SUM(IF(LEN(A1:A20),1/COUNTIF(A1:A20,A1:A20))) と入力して、[Ctrl]+[Shift]+[Enter]で確定。 (数式の両端に「{}」が付いて、配列数式になります。) (2) "あ"の個数は、 =COUNTIF(A:A,"あ") "い"、"う"も同様です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

(1)空き列(仮にB列)を使わせて貰えるなら、配列数式を使わずとも =IF(COUNTIF($A$2:A2,A2)=1,B1+1,B1) で出ます。 一番最下行(下例でB9)に出る数字(5)がそれです。 A2:B9で a 1 a 1 s 2 d 3 a 3 s 3 f 4 b 5 5種類です。 理由があって、B1は空白にしておく必要があります。 (その5つの具体的値) A11に =INDEX($A$2:$A$9,MATCH(ROW(A11)-10,$B$2:$B$9,0),1)と入れて5行下まで複写する。 a s d f b となる。 これらのそれぞれの件数は B11に =COUNTIF($A$2:$A$9,A11) といれ、5行下まで複写する。 a 3 s 2 d 1 f 1 b 1 となります。 全て自動で出ます(「あ」とか「い」とか人手による一切 入力なしということ。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

ここは、やはりピボットテーブルが簡単で希望の(1)と(2)が同時に叶います。 【手順】 (1)A列(あ、い、・・のある列)に項目名を付けます(例:データ) (2)作業用として、B列に項目名を付け(例:個数)、A列のデータに対応して1を入力(B列でなくてもあいている列でOKですが、ピボットテーブルを作る上で項目名は必須です) (3)データ/ピボットテーブルとピボットグラフレポートを選択し、そのまま次へボタンクリック(2/3へ) (4)範囲を指定(項目名を含むデータをドラッグ)し、完了ボタンを押す (5)空のピボットテーブルが新しいシートにできますので、項目の箱を左側の行へ、値の箱を中央のデータにドラッグし、完了ボタン。 完成すると、#3の方の結果となります。 手順が長くて面倒くさそうですが、なれるとすいすいできます。 また、知っておくとクロステーブルを作る上で便利この上ない機能です。

全文を見る
すると、全ての回答が全文表示されます。
  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.3

ピボットテーブルなら。 A列にデータが入っているとして、B列とC列を作業用に使います。 また、1行目にタイトル行(A1「F1」B1「F2」C1「F3」)を挿入します。 B2に「=ROW()」、C2に「=IF(VLOOKUP(A2,A:B,2,0)=B:B,1,0)」と入れ、下方にコピー データ→ピボットテーブル レイアウト 行=F1 データ=データの個数:F1、合計:F3 これで作成されたピボットテーブルの「データ」と書いてあるセルを「計」と書かれたセルの上にドラッグすると、下記のように集計されます。 あ  2  1 い  3  1 う  4  1 総計 10  3 総計の3が種類の数です。 頑張ってくださいヽ(^。^)ノ

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

種類数は=SUMPRODUCT(1/COUNTIF(A1:A9,A1:A9)) (ブランクがあるとエラーしますが...) あの数は=COUNTIF(A1:A9,"あ") いの数は=COUNTIF(A1:A9,"い") うの数は=COUNTIF(A1:A9,"う")

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ExcelのSMALL関数について

    ExcelのB列(B2:B50)にフラグ「0」または「1」が入力されています。 フラグ「0」が入力されている行番号を関数を使用して取得したいと思っています。 B列のフラグは順次更新されており、フラグ「0」の個数は複数あります。 下記の関数式(以下多めにオートフィル)で上記のことができるようになったのですが、 =IF(COUNTIF(B$2:B$50,0)<ROW(A1),"",SMALL(INDEX((B$2:B$50<>0)*10^5+ROW(B$2:B$50),),ROW(A1))) SMALL関数式の部分↓↓の意味がよくわかりません。 SMALL(INDEX((B$2:B$50<>0)*10^5+ROW(B$2:B$50),),ROW(A1)) どなたかご教授いただけないでしょうか。

  • エクセルについての質問です。こんなことはできるのでしょうか?

    エクセルについての質問です。こんなことはできるのでしょうか? まず「データ」という名前のシートのA列に動詞,名詞など品詞が入っています。B列に高1,高2など学年が入っています。C列に数字(2や3など)が入っています。D列に英単語が入っています。E列に日本語訳が入っています。F列は作業列でF2のセルに=IF(AND(A2=問題作成!$A$2,B2=問題作成!$B$2,AND(C2>=問題作成!$C$2,C2<=問題作成!$D$2)),ROW(A1),"")が入っており,以下のセルに数式がコピーされています。 次に「問題作成」というシートのA5セルに=IF(COUNT(データ!$F$2:$F$2294)<ROW(A1),"",INDEX(データ!D$2:D$2294,SMALL(データ!$F$2:$F$2294,ROW(A1))))が入っており,以下のセルに数式がコピーされています。B5セルには=IF(COUNT(データ!$F$2:$F$2294)<ROW(B1),"",INDEX(データ!E$2:E$2294,SMALL(データ!$F$2:$F$2294,ROW(B1))))が入っており,以下のセルに数式がコピーされています。 「問題作成」のシートのA2セルは動詞や名詞など品詞が選択できるようになっています。B2セルは学年が選択できるようになっています。 この後,C2セルにWordでページを指定して印刷するときのように,2-3,6,8のように入力すると,「データ」のシートからそのページに該当する単語のみを「問題作成」のA5,B5以下に引っ張ってくるようなことはできますでしょうか? また,入っている数式に問題があれば,お教え願いたいのですが。 よろしくお願いいたします。

  • エクセル 関数式の応用

    こんにちは エクセル2010を使っています。 画像の様なデータがあって、次のような式を教えてもらいました。 =IFERROR(INDEX($B$1:$B$7,SMALL(IF($A$1:$A$7=C$1,ROW($A$1:$A$7)),ROW(A1))),"") 画像では A列 B列の データが7行目までなのですが、これを3万行まで広げようと次のような式に変更してみましたが上手く行きません。(空白が返される) =IFERROR(INDEX($B$1:$B$30000,SMALL(IF($A$1:$A$30000=C$1,ROW($A$1:$A$30000)),ROW(A1))),"") 詳しい方、教えていただけませんか? よろしくお願いします。

  • エクセルでデータの「どこで重複か」を見つける

    エクセルでデータが「どこで重複しているか」を見つける方法として 以前質問した際に教えていただいたのが B1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(A1="","",IF(COUNTIF(A$1:A1,A1)<=1,"","重複No."&COUNT(A$1:A1,A1))) これで重複があれば上の行から数えてその行のA列に有るデータが何番目の重複であるかがB列に表示されます。 ということでしたがこれには漏れがありました。 =IF(A1="","",IF(COUNTIF(A:A,A1)<=1,"","重複No."&COUNT(A:A,A1))) とすると漏れはありませんが、No.はすべて「0」となるのです。 何番目の重複かが分かる方法はありませんか。

  • エクセル、毎回2づつ増えいくデーターの式?

    よろしくお願いいたします。エクセルで別表からA2、B2に ともに145行までデーターが入っていて、C1に各当するものをA列から引っ張ってくる式が下の数式です。 【=IF(ROWS($2:2)>COUNTIF($A:$A,$C$1),"",INDEX($B:$B,SUMPRODUCT(ROW($A$2:$A$145)*($A$2:$A$145=$C$1)*(COUNTIF(OFFSET($A$2,,,ROW($A$2:$A$145)-ROW($A$2)+1),$C$1)=ROWS($2:2))))) 】 行数が一定で、中だけ数値が変化する分にはいいんですが、毎回2行分データーが増えていきますので、毎回A145の式を147に変えて、手数がかかって、なんかいい式がないもんかとのお伺いなんです。 よろしくお願いいたします。

  • Excelの関数式について

    ExcelのB列(B2:B50)にフラグ「0」または「1」が入力されています。 フラグ「0」が入力されている行番号を関数を使用して取得したいと思っており、 下記関数でできるのですが、フラグ「0」が複数連続で続いた場合は、1つ目だけの 行番号を取得したいのですが、どのように変更したらよいのでしょうか。 D列に下記関数式を入力して、以下オートフィルしています。 =IF(COUNTIF(B$2:B$50,0)<ROW(A1),"",SMALL(INDEX((B$2:B$50<>0)*10^3+ROW(B$2:B$50),),ROW(A1))) 例えば、下記のようば場合は、行番号「2、5、8」を取得したいです。    A   B 1      -1 2       0 3      -1 4      -1 5       0 6       0 7      -1 8       0 9      -1 ・ ・

  • エクセル関数について

    A列とB列に氏名を入れてA列にあってB列にないものを取り出す為に=IFERROR(INDEX($A$2:$A$8,SMALL(IF(ISNA(MATCH($A$2:$A$8,$B$2:$B$8,0)),ROW($A$2:$A$8)-1),ROW()-1),1),"")の関数をⅮ列に入れ下にオオートフィルしたのですが、思うように表示されません。  関数が間違っているのか判りません。 何か良い方法はあれば教えてください。

  • この関数どうでしょう??

    入力用のX6~X75に空欄を含むデータが入っています。 それを出力用のD6~D50に空欄以外のデータを上から順番に表示させたくてネットでいろいろ調べてD6に試しに入力したのですが、 なぜか入力用のX16が出力します。 それ以下は順番に表示されましたが・・・。 エクセル素人なので下の関数の意味を教えてほしいです。 X6の数字を1や11に変えたりするとX11のデータやX21のデータが出ましたが全く分かりませんでした。 よろしくお願いします。 この関数をうまく改造すれば入力用X列を出力用D列に 入力用Y列を出力用E列 入力用Z列を出力用G列 入力用AA列を出力用I列 にできますか?? =IF(COUNTIF(入力用!$X$6:$X$75,"<>")>ROW()-6,INDEX(入力用!$X$6:$X$75,SMALL(IF(入力用!$X$6:$X$75<>"",ROW(入力用! $X$6:$X$75),99999),ROW())),"")

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • エクセルでお聞きします。

    こちらのサイトの回答を参考に、セルに下記のような式が入れました。 他のシートや他のセルにも同様の式が入っているのですが割愛致しました。 通常Sheet1のB列は空白なんですが、もし何か文字が入っていたら その行に関してはこの式を反映させない方法を教えて下さい。 (Sheet2) B列 =IF(ROW(E1)>COUNT('Sheet1'!$E$4:$E$505),"",INDEX('Sheet1'!E$1:E$505, SMALL(INDEX(SUBSTITUTE(('Sheet1'!$E$4:$E$505<>"")*1,0,10^5)*ROW('Sheet1' !$E$4:$E$505),),ROW(E1)))) D列 =IF(ROW(C1)>COUNT('Sheet1'!$E$4:$E$506),"",INDEX('Sheet1'!C$1:C$505, SMALL(INDEX(SUBSTITUTE(('Sheet1'!$E$4:$E$505<>"")*1,0,10^5)*ROW('Sheet1' !$E$4:$E$505),),ROW(C1))))

このQ&Aのポイント
  • EPSON EP880ANの印刷結果が白紙になっており、ヘッドクリーニングしても黒の部分が出ない症状が発生しています。他の色は正常に印刷できており、ヘッドの調整も正常です。また、黒インクを交換しても同じ結果となっています。
  • EPSON EP880ANの問題で、印刷結果が白紙になってしまうという症状が発生しています。ヘッドクリーニングを行っても黒色が全く出ないため、黒インクの不足が原因ではないかと考えられます。ただし、他の色は正常に印刷できているため、ヘッドの調整は正常であると考えられます。
  • EPSON EP880ANの印刷結果が白紙になり、ヘッドクリーニングしても黒色が出ないという症状が発生しています。黒インクの交換も行いましたが、同じ状況が続いています。他の色は正常に印刷できているため、ヘッドの調整に問題はないと考えられます。年賀状の返信で困っており、早めに助言いただきたいです。
回答を見る

専門家に質問してみよう