[[20231113143649]] 『空白セル以外、行ごと詰めて昇順に並び替えて表示』(むてん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『空白セル以外、行ごと詰めて昇順に並び替えて表示』(むてん)

表を作成していて行き詰りました。
ぜひ教えて下さい。

【Sheet1】

  A   B   C   D
1 なす  4   玉ねぎ 白菜  
2     5   人参  玉ねぎ
3 なす  1   卵
4 なす  6   白菜  人参
5     2   白菜
6 なす  3   人参  玉ねぎ

・別シートにA列の空白以外を詰めて、かつB列の昇順に並べ替えたい

【Sheet2】

  A   B   C   D
1 なす  1   卵
2 なす  3   人参  玉ねぎ
3 なす  4   玉ねぎ 白菜  
4 なす  6   白菜  人参

・フォームで集まってきたデータ(スプレットシート)から【Sheet1】にコピペした段階で【Sheet2】のような表ができる仕組みにしたいです。

どんな関数なのか、ぜひ教えてください。
よろしくお願いします。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


なんでも関数でやらないといけないんですか?
Excelに備わっているオートフィルタ機能とかソート機能とかは無視なんでしょうか。
(疑問) 2023/11/13(月) 15:42:21

Excel2010レベルの関数ですが。

Sheet2!A1: =IFERROR(INDEX(Sheet1!$A$1:$D$6,MOD(AGGREGATE(15,6,Sheet1!$B$1:$B$6+ROW($A$1:$A$6)/((Sheet1!$A$1:$A$6<>""))/100,ROW(A1)),1)*100,COLUMN(A1)),"")

D列までと下に必要数コピーします。

Sheet1のD列にデータ(野菜名)がないと「0」と表示されますので
ゼロサプレス形式を設定してください(式が長くなりますので)
(メジロ) 2023/11/13(月) 15:46:10


式の最後に「&""」追加しての「0」表示は消えますが
数値が文字列になりますが・・・

(メジロ) 2023/11/13(月) 15:49:24


>式の最後に「&""」追加しての「0」表示は消えますが
>数値が文字列になりますが・・・
すいません。「が」続いて変な文章になりました。

式の最後に「&""」追加しても「0」表示は消えます。
ただ、数値が文字列になります。
(メジロ) 2023/11/13(月) 15:52:48


 もしB列に重複がなければ
 =IFERROR(INDEX(Sheet1!A:A,MATCH(AGGREGATE(15,6,Sheet1!$B$1:$B$6/(Sheet1!$A$1:$A$6<>""),ROW(A1)),Sheet1!$B:$B,0))&"","")
 でも。
 野菜名がない場合の注意点および&""での注意点はメジロさんの式と同じ。
(ねむねむ) 2023/11/13(月) 15:59:08

 おっと
 >=IFERROR(INDEX(Sheet1!A:A,MATCH(AGGREGATE(15,6,Sheet1!$B$1:$B$6/(Sheet1!$A$1:$A$6<>""),ROW(A1)),Sheet1!$B:$B,0))&"","")
 の式では数値が文字列の数字になる。
 >=IFERROR(INDEX(Sheet1!A:A,MATCH(AGGREGATE(15,6,Sheet1!$B$1:$B$6/(Sheet1!$A$1:$A$6<>""),ROW(A1)),Sheet1!$B:$B,0)),"")
 だと数値のままだが野菜名が空白の場合に0が表示される。

(ねむねむ) 2023/11/13(月) 16:08:46


追加質問ですみません。
D行までではなくE以降も野菜が追加したり、資料の受付人数が6人を超える可能性が高いです。

大変申し訳ありませんが情報が追加することを想定した式を教えていただけますでしょうか。
いろいろと変わって本当にすみません。

【Sheet1】
  A   B   C   D   E   F  ・・・・・ 
1 なす  4   玉ねぎ 白菜  ひき肉 
2     5   人参  玉ねぎ 卵   ひき肉
3 なす  1   卵
4 なす  6   白菜  人参  長ネギ
5     2   白菜
6 なす  3   人参  玉ねぎ 豆腐
7 なす  8   長ネギ 豆腐




【Sheet2】
  A   B   C   D   E   F  ・・・・・ 
1 なす  4   玉ねぎ 白菜  ひき肉 
2 なす  1   卵
3 なす  6   白菜  人参  長ネギ
4 6 なす  3   人参  玉ねぎ 豆腐
5 なす  8   長ネギ 豆腐




(むてん) 2023/11/13(月) 16:34:36


 =IFERROR(INDEX(Sheet1!A:A,MATCH(AGGREGATE(15,6,Sheet1!$B$1:$B$6/(Sheet1!$A$1:$A$6<>""),ROW(A1)),Sheet1!$B:$B,0)),"")
 だと6行目までを対処としている。
 対応最大行数を増やすには式中の$6部分の変更で可能。

 また横へは単に横へのコピーを伸ばしていくだけ。
(ねむねむ) 2023/11/14(火) 08:33:01

ねむねむさんの式も同じだと思いますが、INDEX関数の範囲やROW関数の行数を増やし

式をコピーする範囲を右と下に広げるだけです。

ねむねむさんからご回答がありますが、書き込みましたので送付します。

(メジロ) 2023/11/14(火) 08:41:48


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.