- 締切済み
エクセルで空白と0表示のセルを省いて表示したいです
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
>関数を希望しております。 またか、と思う。 関数でなら、やさしいわけではない。仕事の課題(検索などデータベース的場面)にはVBAが必要だろう。 ーー この課題は、条件による「抜出し門題」で、スマートには、行かない課題です。配列数式をつかったり、 関数式が複雑だったり、作業列が必要だったり。 365などのFILTER関数が使えないか勉強したらどうかな。質問にエクセルバージョンが書いてない。 「みかん」の下の表のデータ状況が書いてないが、関数などが入っているケースだと、本件 アウトかも。そういう状況も想像できず、質問の書き方がまずいのだ。 ーー 例データA1:E8 種類 金額 個数 計 該当の上から何番目数 イチゴ 200 2 400 1 みかん 100 3 300 2 0 2 グレープ 300 2 600 3 柿 100 1 100 4 0 4 玉ねぎ 100 5 500 5 ーー F列F2以下の式は =COUNTIFS($A$2:A2,"<>""",$D$2:D2,"<>0") COUNTIFS関数と(下記で)MATCH関数の特徴を利用したもの。=該当の最初しか返さない性質を利用。 13の式は =IFERROR(OFFSET($A$1,MATCH(ROW()-12,$E$2:$E$8,0),COLUMN()-1,1),"") これをD列まで右方向に式を複写。 A13:D13の式を下方向に式を複写。 結果 A13:D17見えて居る範囲。 イチゴ 200 2 400 みかん 100 3 300 グレープ 300 2 600 柿 100 1 100 玉ねぎ 100 5 500 A12:D12の項目見出しなどは別途入力で作製
- iyonohanamuko
- ベストアンサー率54% (6740/12373)
たとえば、 B13セルに =IFERROR(INDEX($B$3:$B$9, SMALL(IF($B$3:$B$9<>"", ROW($B$3:$B$9)-ROW($B$3)+1), ROW()-ROW($G$3)+1)), "") これをCtrl+Shift+Enterで配列数式として確定させます。 それをB19までフィルしてみてはいかがでしょうか?
お礼
ご回答ありがとうございます。やってみたのですが、何も表示されません。
補足
追加の条件がが出てしまったので締め切り致します。ありがとうございます。
- aokii
- ベストアンサー率23% (5210/22062)
完全自動の式で処理するのは少し難しいので、できれば、B2からE9までの表をコピーしてB12に貼り付けてからB12の種類列を優先して並べ替えてはいかがでしょうか。
補足
追加の条件がが出てしまったので締め切り致します。ありがとうございます。
- hiro_1116
- ベストアンサー率30% (2556/8268)
表示だけなら、B列にフィルターを設定して、空白を除外したら宜しいかと。
お礼
回答ありがとうございます。関数での使用を希望しております。申し訳ありません。
補足
追加の条件がが出てしまったので締め切り致します。ありがとうございます。
補足
すみません。会社の独自のシステムを使用の為、VBAは使用できません。Windowsのバージョンも古いものも使用しているパソコンもあったりなど、こちらにも様々な理由があります。すべての理由まで記載すべきでした。申し訳ございません。ご回答ありがとうございます。質問は締め切らせていただきます。