- ベストアンサー
重複項目を除いて並べる関数
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>実際の表では、添付図でいうB3に「果物名」というような項目名 >があり、B4セルから教えてくださったことをやったらおかしくなったの 確かめましたが、B3セルに入力があっても算式は問題なく計算しました。 質問図で、 E4セルがB4セルを参照(=B4)していますか? E5セルに「=IFERROR(VLOOKUP("*",IF(COUNTIF(E$4:E4,$B$4:$B$100)=0,$B$4:$B$100),1,0),"")」を貼り付けて、Ctrl+Shift+Enterで登録し、E6セル以降はE5セルをコピーします。 もし、E3セルにもB3セルと同様に「果物名」を表示するならば、E3セルは「=B3」または直接「果物名」と入力します。B3セルに「果物名」と入力した状態で、回答した算式をE3セルから適用すると、「果物名」という表題が「クダモノメイ(りんご、ばなななど)」と同列で扱われて、2行目以下には「果物名」という文字はないので、うまくいっているように見えますが、避けたい方法と思います。表題とクダモノメイを分けて考えればいいでしょう。
その他の回答 (5)
- msMike
- ベストアンサー率20% (368/1812)
[No.2]へのコメント、 》 理解できていないところもまだありますが… 何処、何処、? そして、理解できたところは、何処? 興味あるなぁ~!
お礼
ありがとうございました。
- nishi6
- ベストアンサー率67% (869/1280)
>大変恐縮ですが、「セルE4:=B4」のところから、もう少し詳細に >数式の意味を教えていただけないでしょうか。 うまく説明できるかどうかですが。 セルE4:=B4 セルE5:=IFERROR(VLOOKUP("*",IF(COUNTIF(E$4:E4,$B$4:$B$100)=0,$B$4:$B$100),1,0),"") E列に重複のないリストを作るので、1つ目はB列の最初のデータ(B4)になります。 次に重複のない2番目、3番目、・・・と考えていきますが、ここで使っているのが、「配列数式」と「Vlookup関数のワイルドカード」です。 配列数式とは、複数セル(配列)を対象に、作成された数式です。セルE5の式内:IF(COUNTIF(E$4:E4,$B$4:$B$100)=0,$B$4:$B$100)がそれにあたります。 やっていることは、$B$4:$B$100にセルE4(りんご)がなかったら(=0)そのまま、あったら$B$4:$B$100のそのセルをFalseにしています。添付図F列。 以降、G列、H、I、・・・と既に重複のない直前のデータと同じデータを配列数式を使ってFalseに変えています。繰り返しの処理になります。(数学的帰納法を思い出します) 配列数式で、F列~L列のリストができあがるんですが、このリストから先頭の「文字列」を取り出します。これに使うのが、「Vlookup関数のワイルドカード」です。 式は、=VLOOKUP("*",範囲,列,0) という形式になります。「*」がワイルドカードで「任意の文字列」を探します。倫理値や数値は該当しないので、最初の文字列を探すことができます。 Excelの算式は複雑になると、補助列を作ったりすると分かりやすくなることがあります。半面、補助列を作り忘れると、誤った計算をしてしまうこともあります。 配列数式を使うと、補助列を不要にできたりします。Sumproduct関数も同様な機能を持つ便利な関数です。 ご参考に。
お礼
再度のご回答誠にありがとうございます。 これから確認させていただきますが、取り急ぎお礼まで。
補足
実際の表では、添付図でいうB3に「果物名」というような項目名があり、B4セルから教えてくださったことをやったらおかしくなったのですが、B3セルから始めたら上手くいっているような状態です。とりあえずこれでやっていこうかと思いますが、違いましたらまた教えていただければ幸いです。ありがとうございました。
- nishi6
- ベストアンサー率67% (869/1280)
添付図で、 セルE4:=B4 セルE5:=IFERROR(VLOOKUP("*",IF(COUNTIF(E$4:E4,$B$4:$B$100)=0,$B$4:$B$100),1,0),"") セルE5の式は配列数式なので、登録時、Ctrl+Shift+Enter とします。 登録するときに、CtrlキーとShiftキーを押しながらEnterキーを押します。 登録に失敗した場合、F2キーで再編集モードにして、再度、Ctrl+Shift+Enter としてください。 後は、下方向に必要行分コピーします。多目がいいでしょう。 算式は、B列のデータがB100までとしています。好きに変更(2ヶ所)してください。 多目のデータに対応した算式にしておけば、補助列を意識する必要はないでしょう。 式の意味は、 「$B$4:$B$100」が重複データのあるセル範囲 「E$4:E4」が重複なしのデータ(直前データ) 当方、Win10、Excel2010です。ご参考に。
お礼
ご回答ありがとうございます。 理解できていないところもまだありますが、大変参考になりました。
補足
大変恐縮ですが、「セルE4:=B4」のところから、もう少し詳細に数式の意味を教えていただけないでしょうか。
- msMike
- ベストアンサー率20% (368/1812)
- oboroxx
- ベストアンサー率40% (317/792)
そんな関数はないと思いますよ。
お礼
ご回答ありがとうございます。
お礼
遅くなりましたが、誠にご回答ありがとうございます。 質問の件につきましては、解決いたしました。 今大変な社会状況ですが、ご回答者様におきましても ご無事をお祈りしております。