- 締切済み
A, Bに共通しないBの物をCに関数のみでリスト化
エクセル2007でのはなしです A,B,と言うデータ群があり リスト化されているものとします。 その中でCと言うデータ群の作成を目指します データ群Aはシート名Aに でーた群Bはシート名Bに でーた群Cはシート名Cに それぞれ利用時に改めてセットされ直されるものです。 データ群A、B、に共通するものもあれば 片方にしかないものもあるしよう これらの全てのキーコードはD:3より一列内に、20新4桁の数値で一列にら羅列されているものとします 予めシート名Cのキーの列に関数がセットされるものとすると、どの様な式が使えるでしょうか ただ作業列はつかわない方向でお願いします どうすればいいでしょうか ご教示をお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
No.2です。タイトルの >A, Bに共通しないBの物をCに関数のみでリスト化 に気が付きませんでした(^_^;) C2セル =IF(-SUM(-(ISNA(MATCH($B$2:$B$15,$A$2:$A$15,0))))<ROW(A1),"", INDEX($B$2:$B$15,SMALL(IF(ISNA(MATCH($B$2:$B$15,$A$2:$A$15,0)),ROW($B$2:$B$15)-1),ROW(A1)))) [Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる 下へオートフィル データ数が多いものは、作業列を使うものに比べ計算がとても遅くなります。 理解するのに時間がかかります。そして、後継者にやさしくありません。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
使い物にならないと思うがせっかく作ったので C2セル =IF(-SUMPRODUCT(-(ISNA(MATCH($A$2:$A$15,$B$2:$B$15,0))))>=ROW(A1), INDEX($A$2:$A$15,SMALL(IF(ISNA(MATCH($A$2:$A$15,$B$2:$B$15,0)),ROW($A$2:$A$15)-1),ROW(A1))), IF(-SUMPRODUCT(-(ISNA(MATCH($B$2:$B$15,$A$2:$A$15,0))))-SUMPRODUCT(-(ISNA(MATCH($A$2:$A$15,$B$2:$B$15,0))))>=ROW(A1), INDEX($B$2:$B$15,SMALL(IF(ISNA(MATCH($B$2:$B$15,$A$2:$A$15,0)),ROW($A$2:$A$15)-1),ROW(A1)+SUMPRODUCT(-(ISNA(MATCH($A$2:$A$15,$B$2:$B$15,0)))))),"")) [Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる 下へオートフィル ダブりの削除なし
お礼
冒頭のIF文で開かれたかっこを含み その後5段開かれていると見受けます。 これに対し、>=RO…の手前で その全てに当たる5段の閉じかっこにより 開かれたかっこかなくなっているように思います つまり、IF文のもたらす結果が1以上か演算させている状態ですよね? こう狙いを持たれて書かれているなら 直後のINDEX文との間に演算子が必要かと思うのですが 「,」が配されています。 これはエクセルが認めた式ですか? もう1つ ISNA文の結果に-1をさもかけているようにされた上で 集計されていますよね つまりISNA文がもたらす最大値は0、最小値は-1 これらの総和を単純に求めると最大値は0、値の範囲は0→- ですよね? これに引き換え、演算を受けていないROW文化もたらす値は 常に自然数 0以下>=自然数は確認する価値があるのですか?
補足
=IF(SUNMPRODUCT((1-ISNA(MATCH(… の、語気では? とにかく最後までこの調子 オンメモリーに大量にデータを置くことは CPUキャッシュオーバーフローを引き起こすばかりでなく ハッシュ経由でのHDDアクセスウエイトが発生し シートの鈍化をあからさまに招くから避けるとか 配慮にかけてますよ 面白い取り組みの香りを感じたので寄与海を持ったのですが 何せ粗削り過ぎて最後まで読めませんでした 悪しからずご容赦ください
- daredakisama
- ベストアンサー率50% (90/177)
> 作業列はつかわない方向で 使わなくても出来るかもしれないけど その労力を割いてまで作るべきものかどうか、かなり微妙。 作業列を使えば<比較的>簡単に作れると言うのは、 前のクローズしていない質問に対する回答者の話しぶりからもわかる事。 そんなわけで、作業列を使いたくない理由を簡潔に補足ください。
お礼
全くの儀礼的なお礼を述べておきます。
お礼
ありがとうございます。 ところで主にDSで拝見している関係上、頂いた映像が見れません。 申し訳ありません。 お教えください 冒頭のIF文を含み、新たに開かれたかっこが 条件判断終了以前で 全て閉じられているように見受けます。 これは狙いですか? 文字列に対し不等号が使えないように記憶しています。 文字列の不等号比較を行う際は 先頭1文字だけを対象にする と、認識しているからです。 私、間違っていますか? 文字列の不等号比較を回避されていますか? かっこをどのようにかけたかったか 真意が読めなかったので 映像が見れないことも合間って 読み取れませんでした。