ちょっと変わったマニアな作品が集結

Excelで、ある列で一番多く入っている値(文字列)を検索して抽出し、
別のセルに表示させたいと思っています。



黄   ← こういう文字列があったとしたら、
黄     「黄」を別セルに表示させたい、という意味です



これを、Excel2000の関数だけで表示したいのですが、
式の組み方が分かりません。
どなたかご教授ください。

MAXやRANKなども組み合わせてみたのですが…。

現在は、列を一つ作りそちらでCOUNTIFで数字を出して、
その数字をMAXで拾って表示していますが、
列をひとつ作ることをなくしたい、というのが目的です。

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

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

A 回答 (3件)

    A    B


1   赤   黄
2   青
3   黄
4   黄
5   緑
6   黒

B1=INDEX(A1:A6,MODE(MATCH(A1:A6,A1:A6,0)))
    • good
    • 31
この回答へのお礼

試してみたらいちばんスマートな方法でした。
しばらくはこちらを使わせていただきます。

…とはいえ、やはり参照値が多いと、
時間がかかってしまいますね。これは参照値を多くするほうが悪いのですが(^^;

ご回答ありがとうございました<(_ _)>

お礼日時:2008/03/16 00:12

配列数式やSUMPRODUCT関数を多く経験して無いと、結構関数では難しい問題だと思う。


新しい仕掛けを使わないとね。
配列数式を使って見た。
例データ
A1:A10
x
s
d
f
a
x
s
a
w
a
どこかのセルに
=INDEX(A1:A10,MIN(IF(COUNTIF($A$1:$A$10,A1:A10)=$D$2,ROW(A1:A10),99)),1)
と入れて、Shuft,Ctrl,Enterの3つのキーを同時押しする。
(配列数式)
また別法で、配列数式でなく、SUMPRODUCT関数に置き換えられると思う。
結果
a
aを1つXと置き換えると結果がXに置き換わるよね。
----
式の意味は、A1:A10の出現回数と等しい行で行番号が最小(一番上行)の行の値を
A1:A10の表の中からINDEX関数で取り出した。
    • good
    • 2
この回答へのお礼

配列数式になじみがなかったので、
こちらを思いつきませんでした。
こちらも、何かの折に有効に使えそうです。

ご回答ありがとうございました<(_ _)>

お礼日時:2008/03/16 00:10

数字の場合はmode関数を使えば最頻値を取り出せるので、文字列を数値化する工夫をすればOKかと思います。

    • good
    • 2
この回答へのお礼

有効に使えそうです。
文字列を数値化ですと、別表を作成してlookupくらいしか思いつかないのですが、
他に何か方法がありましたら、ご参考までに教えてください。

ご回答ありがとうございました<(_ _)>

お礼日時:2008/03/16 00:03

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q一番多い名字(文字)のランキングを作りたい

いつも助けていただいてありがとうございます。
今回も是非お力を貸して下さい。
エクセルでランキング表を作っています。

たとえば、際限なくあるさまざまな名字のデータ(100件以上あるとします)で、田中さんは何件あって、全体で何位というランキング表を作りたいのですが、どのような関数で作ることができるのでしょうか?

尚、応用として、野菜、くだもの等、さまざまな他のものでも対応したいとおもっています。
よろしくお願いいたします。

Aベストアンサー

[No.1回答に対するお礼]に対するコメント、

   A   B   C  D   E  F  G  H   I
1  Lnam Fnam  Age Sex Field   姓  数 ランク
2  高橋 英樹   62 M  俳優   小林  5    3
3  小林 稔侍   63 M  俳優   高橋  6    2
4  渡辺 えり子  51 F  女優   渡辺  7    1
5  小林 幸子   52 F  歌手
6  渡辺 真理   38 F  キャスター
7  小林 薫    54 M  俳優
8  渡辺 真知子  49 F  歌手
9  高橋 留美子  48 F  漫画
10 高橋 真梨子  56 F  歌手
11 渡辺 徹    44 M  タレント
12 高橋 克実   44 M  俳優
13 渡辺 貞夫   73 M  ジャズ
14 小林 旭    68 M  俳優
15 高橋 恵子   51 F  女優
16 小林 光一   53 M  囲碁
17 渡辺 謙    46 M  俳優
18 高橋 由伸   30 M  野球
19 渡辺 淳一   72 M  作家

H2: =COUNTIF(A:A,G2)
I2: =RANK(H2,H$2:H$4)

[No.1回答に対するお礼]に対するコメント、

   A   B   C  D   E  F  G  H   I
1  Lnam Fnam  Age Sex Field   姓  数 ランク
2  高橋 英樹   62 M  俳優   小林  5    3
3  小林 稔侍   63 M  俳優   高橋  6    2
4  渡辺 えり子  51 F  女優   渡辺  7    1
5  小林 幸子   52 F  歌手
6  渡辺 真理   38 F  キャスター
7  小林 薫    54 M  俳優
8  渡辺 真知子  49 F  歌手
9  高橋 留美...続きを読む

QEXCELのシート上に入力された文字列の数(出現数)を自動集計するには?

日々の株式銘柄の値上がり/値下がりのデータをエクセルシートに入力しています。
このデータに対し、銘柄AAA,BBB,CCC……毎に
 AAA銘柄の出現数
 BBB銘柄の出現数
  以下 同様CCC、DDD
と、自動的に出現する数をカウントしたいのですがEXCELの関数をどのように設定すればいいのでしょうか?

現在は、その銘柄を元に「検索」をかけ、目視で計算しているのですが時間がかかってたまりません。
どうぞよろしくお願い致します。
  

Aベストアンサー

こんばんは!
参考になるかどうか判りませんが・・・

元データがどのような感じか判りませんので
勝手に↓のような表を作ってみました。

元データの横に作業用の列を使わせてもらっています。

作業列のA2セルに
=IF(COUNTIF($B$2:B2,B2)=1,ROW(A1),"")
としてずぃ~~!っとオートフィルで下へコピーします。
(D・E列の数式が10000行まで対応できるようにしていますので、そのくらいまでコピーしても構いません)

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

E2セルに
=IF(D2="","",COUNTIF($B$2:$B$10000,D2))

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

これでB列に新しい銘柄が出現してもちゃんと対応すると思います。

以上、参考になれば幸いですが、
的外れなら読み流してくださいね。m(__)m

こんばんは!
参考になるかどうか判りませんが・・・

元データがどのような感じか判りませんので
勝手に↓のような表を作ってみました。

元データの横に作業用の列を使わせてもらっています。

作業列のA2セルに
=IF(COUNTIF($B$2:B2,B2)=1,ROW(A1),"")
としてずぃ~~!っとオートフィルで下へコピーします。
(D・E列の数式が10000行まで対応できるようにしていますので、そのくらいまでコピーしても構いません)

そして、D2セルに
=IF(COUNT($A$2:$A$10000)<ROW(A1),"",INDEX($B$2:$B$10000,SM...続きを読む

Q500行の中から、多い順に抽出する方法

A列に一連番号、B列に型式、C列に製造番号、D列に販売月日が入力されています。
B列には複数のデータがランダムに入力されておりますが、それを多い順に一覧表にできるマクロがあれば…と考えています。
なにかいいアイデアはないでしょうか?

Aベストアンサー

ピボットテーブルで 行フィールドとデータフィールドに「型式」をドロップ
出来上がったピボットテーブルで集計結果を降順で並び替え

QExcelで最大値の入っている数値の右側にある項目名を拾いたい。

Excelで最大値の入っている数値の右側にある項目名を拾いたい。

下のようなデータがあります。(A列は年、Bは何かの生産量・・とします)

1 2000 7
2 2001 11
3 2002 14
4 2003 10
5 2004 9
6 2005 8

生産量(B列)の最大値を求めるのは=MAX(B1:B7)で"14"が得られると思いますが、求めているのは"14"の入っている年の"2002"という数字を隣のC1に入れたいと思います。
どのような関数が必要でしょうか?

Aベストアンサー

こんばんは!
一例です。

↓の画像でC2セルに表示するようになりますが・・・

C2セルの数式は
=INDEX($A$2:$A$1000,MATCH(MAX(B2:B1000),B2:B1000,0))
にしています。
(エラー処理はしていません)
A列の1000行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、参考になれば幸いです。m(__)m

QMODE関数を文字でできる関数はないでしょうか

EXCELのMODE関数を文字項目で実行するとエラーになりました。
文字でもできる関数はEXCELにありますか?

例)
A B B B A B 結果 B (MODE関数で実行すると#N/Aになりました。)
宜しくお願いします。

Aベストアンサー

一例です。
仮にA1:A100範囲としています。
尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。
=INDEX(A1:A100,MATCH(MAX(COUNTIF(A1:A100,A1:A100)),INDEX(COUNTIF(A1:A100,A1:A100),),0))

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ベストアンサー

 データは入力されているセルの範囲を「A1:C4」とすれば、

=COUNTIF(A1:C4,"高橋")

Qエクセル 個数が多い順に並び替え

添付のエクセルのデータで。
B列に、a,b,c,d という文字が入っています。
これを並び替えして、
b
b
b
b
b
b
a
a
a
c
c
d
このようにして、しかも、上から多い順に並び替えるには
どうすればいいでしょうか?

目的は、a,b,c,d それそれの中で、多い順番と、どのくらい個数があるかを知ることです。
よろしくお願いします。

Aベストアンサー

No2です。
すいません、先ほどの方法では文字の数が同じものがあった場合にまずいことになります。

例 :
あ c 1
い a 2
う b 2
え a 2
お b 2


い a 2
う b 2
え a 2
お b 2
あ c 1

これを防ぐために、並び替えの際にB列をキーに追加してください。
なおバージョンによって表示は異なると思います。(画像はOffice2007)

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エクセルのIF関数で、文字が入力されていたならば~

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング