人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルに関する質問です。下記のように、A1,A2,・・・,C1,C2,・・・,E1,E2,・・・の順に
文字列が並んでいます。
┌─┬─┬─┬─┬─┬─┐
│国│ │社│ │算│ │
├─┼─┼─┼─┼─┼─┤
│算│ │国│ │国│ │
├─┼─┼─┼─┼─┼─┤
│国│ │算│ │理│ │
├─┼─┼─┼─┼─┼─┤
これを、下のように左上から下に向かって、何回目の文字列データとなっているのかカウントを取りたいのです。
┌─┬─┬─┬─┬─┬─┐
│国│1│社│1│算│3│
├─┼─┼─┼─┼─┼─┤
│算│1│国│3│国│4│
├─┼─┼─┼─┼─┼─┤
│国│2│算│2│理│1│
├─┼─┼─┼─┼─┼─┤
このように並んでいる表が複数シートあり、全部通し番号を入力したいのですが、関数で可能でしょうか?VBAでもいいのですが、なるべく関数でお願いします。詳しい方、教えてください。

●質問者: anglar
●カテゴリ:コンピュータ
✍キーワード:A1 E2 VBA エクセル カウント
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● りくっち
●40ポイント

http://www.moug.net/skillup/ebb/ekbb/ekbb002-1.htm

お疲れ様です。

ベタですが一番わかりやすいかと思うのでCOUNTIFを使った数式を。


例示通りのデータの場合、各下記のセルに

B1=COUNTIF(A$1:A1,A1)

D1=COUNTIF(A:A,C1)+COUNTIF(C$1:C1,C1)

F1=COUNTIF(A:A,E1)+COUNTIF(C:C,E1)+COUNTIF(E$1:E1,E1)

と入力。

それぞれB,D,Fの数式はA,C,Eのデータがあるセルまでフィルコピー。


こんな感じでどうでしょうか?

◎質問者からの返答

ありがとうございました。素早い対応、凄いですね。


2 ● thomas7212
●50ポイント

http://www.relief.jp/itnote/archives/000448.php

countif関数を使ってはどうでしょう?

複数のシートを通しての通し番号なので、1枚目のシートをsheet1、2枚目をsheet2とします。

1.sheet1のB1に「=countif(A$1:A1,A1)」と入れます。

2.B1の右下をつかんで、B列の終点までドラッグします。

(A列の通し番号が出ます。)

3.次にD1に「=countif(A:A,C1)+countif(C$1:C1,C1)」と入れます。

(A列+C1の通し番号が出ます。)

4.D1の右下をつかんで、D列の終点までドラッグします。

(A列+C列の通し番号が出ます。)

5.以降、「=countif(A:A,E1)+countif(C:C,E1)+countif(E$1:E1,E1)」→終点までドラッグを繰り返します。

(sheet1の通し番号が出ます。)

6.1枚目のシートが全部終わったら、2枚目のB1には「=countif('sheet1'A:E,A1)+countif(A$1:A1,A1)」と入れます。

(sheet1+sheet2のA1の通し番号が出ます。)

7.以降、繰り返しになります。

◎質問者からの返答

複数シートへの対応も書いてくれて感謝です。ありがとうございました。


3 ● Baku7770
●30ポイント

Mr.Big〜小技集・Excelで度数分布表

次のように考えれば可能です。nは自分の行mは最大行とします。

A列の場合、A1?An行までのAnと同じ科目の個数ですから、Bn行には

=COUNTIF($A$1:An,An)

が入ります。実際にはCOUNTIF($A$1:A1,A1)をB1に入れてコピーすればいいでしょう。

それ以外のC列以後は2列前までの個数+自列の個数ですから

=COUNTIF($A$1:Am,C1)+COUNTIF(C$1:C1,C1)

をD1に入れて各列の全行にコピーすれば出来ます。

◎質問者からの返答

考え方もわかりやすかったです。お世話様でした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ