
A 回答 (2件)
- 最新から表示
- 回答順に表示

No.2
- 回答日時:
ピボットテーブルで処理するのが標準的な方法ですが、
参考までに数式を使って処理する方法を。
以下、元データがSheet1の$A$1:$A$99にあり、Sheet2に抽出するとします。
(元データのシートは変更しません)
-----------------------------------------------------------------
●A案:作業列を使って数式で処理
1.Sheet2のA1セルを、
=IF(COUNTIF(Sheet1!$A$1:A1,Sheet1!A1)=1,COUNTIF(Sheet1!$A$1:$A$99,Sheet1!A1)+1/(ROW()+1),"")
として、99行目まで下方にフィル
2.Sheet2のB1セルを、、
=INDEX(Sheet1!$A$1:$A$99,1/MOD(LARGE($A$1:$A$99,ROW()),1)-1)
として、#NUM!が返るまで下方にフィル
※初出のデータについて、度数に行番号の逆数を加えた値を振る
※度数が大きいものから順に選び、端数の逆数(行番号)をとって、該当行の値を返す
-----------------------------------------------------------------
●B案:作業列を使わず数式一発で処理
1.B1セルを選択
2.数式バーに下記の数式を入力
=INDEX(Sheet1!$A$1:$A$99,1/MOD(LARGE(((MMULT((Sheet1!$A$1:$A$99=TRANSPOSE(Sheet1!$A$1:$A$99))*(ROW(Sheet1!$A$1:$A$99)>TRANSPOSE(ROW(Sheet1!$A$1:$A$99))),ROW(Sheet1!$A$1:$A$99)))=0)*(Sheet1!$A$1:$A$99<>"")*(COUNTIF(Sheet1!$A$1:$A$99,Sheet1!$A$1:$A$99)+1/(ROW(Sheet1!$A$1:$A$99)+1)),ROW()),1)-1)
3.Ctrl+Shift+Enterで確定
4.B1セルを#DIV/0!が返るまで下方にフィル
通常の数式はEnterキーで確定しますが、
こちらの数式は配列数式なので、CtrlとShiftを押しながらEnterで確定してください。
参考として書いてみましたが、複雑、長い、重い、の三重苦ですね。
また、MMULTを使っているので元データが5460を超える場合には対応できません。
-----------------------------------------------------------------
エラー処理については、必要に応じて、
・IFERROR関数をかぶせる(Excel2007)
・条件付き書式で白フォントにする
・ページ設定で印刷しないようにする(Excel2002以降)
・=IF(ISERROR(数式),"",数式)で、長さゼロの文字列を返す
・気にしない
その他ご自由に。
いずれもExcel2003で動作確認済。
No.1
- 回答日時:
(1)データ内容(りんごなど)のユニークな列(1回階しか現れない列)を同一シートに作る。
フィルタオプションで「重複するレコードは無視する」を使う。
参考
http://q.hatena.ne.jp/1135141460の2番回答
(2)Countif関数で件数を出す。
(3)(1)の列+(2)の列でソートする
ーー
色々注文をつけているようだが、上記で不満な点は何かな。
ーー
フィルタを使わないなら
第1行は空白にして
例データ A2:A11
A列 B列
a1
b2
a
a
a
b
c3
a
b
c
B列は =IF(COUNTIF($A$2:A2,A2)=1,MAX($B$1:B1)+1,""
と入れて下方向に式を複写する。
これに対しSheet2ナリで、
=INDEX(Sheet1!A:A,MATCH(ROW()-1,Sheet1!B:B,0),1)
と入れて下方向に式を複写する。
結果
Sheet2
a
b
c
#N/A
以上imogasi方式でGoogle照会してもらえれば、類似質問が沢山出る
し#N/Aの消し方もわかると思う。
しかしエクセルは操作のソフトであり、関数でやるのはどうかと思うが、何でも関数の質問者も多い。
(2)またピボットテーブルででもできる
(3)関数FREQUENCYでは文字列の出現頻度は無理のよう。
(4)VBAでもそれほどロジックは難しくない。
初回の出現時にセルに書き出し(表)件数は1とし、毎回(行のデータについて)セルのその表を調べて、該当すれば件数を+1していく。その後はソートする。
この回答への補足
今回質問させていただいたのは、
多数のデータシートごとに集計するにあたって、
元のデータシートをできるでけ変更せずに、
(個々のデータシートにデータ列を作るのは非常に手間がかかり、
かつミスを生じる原因となるので...)
なるべく簡単かつ確実に集計結果を参照できないか
と考えたためです。
関数式を希望したのは、このような理由からでした。
どうもありがとうございました。
(1)とても参考になりました。
(2)ピボットテーブルの使い方も学習してみようと思います。
(3)数字でしたら可能なようですね。当初、この方法でできないかと考えていました。
(4)VBAの知識はまったくありませんので、またの機会にしたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの複雑なシフト表から...
-
【マクロ】変数に入れるコード...
-
エクセルの関数について
-
【マクロ】実行時エラー '424':...
-
【マクロ】数式を入力したい。...
-
【マクロ】【配列】3つのシー...
-
エクセルのリストについて
-
【マクロ】元データと同じお客...
-
【マクロ】左のブックと右のブ...
-
【マクロ】【相談】Excelブック...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
Office2021のエクセルで米国株...
-
vba テキストボックスとリフト...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルシートの見出しの文字...
-
Amazonでマイクロソフトオフィ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報