[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『表の中から特定の行だけ削除して表を作り直したい』(まさ)
質問させて頂きます
表があります
A B C 1 品名 生産地 ランク 2 製品A 日本 A 3 製品B カンボジア C 4 製品C 中国 B 5 製品D 韓国 B 6 製品E インドネシア D 7 製品F アメリカ A 8 製品G マレーシア E 9 製品H インド C
そしてE2から下に除外ランクが入力されてます
E 1 除外ランク 2 C 3 D 4 E
表のC列にE2:E4(CとDとEの文字)があればその行を削除し、新たな表を作り直したいです
ランクがCの3行目と9行目、ランクがDの6行目、ランクがEの8行目を除いた表を作りたいです
完成した表はこのようになります
A B C 1 品名 生産地 ランク 2 製品A 日本 A 3 製品C 中国 B 4 製品D 韓国 B 5 製品F アメリカ A
対象の行を削除して上に詰めた表になります
C列で並び替えて対象の行を削除してますが、関数を使って自動で処理したいです
作業シートや結果を表示させるシートなどを作っても大丈夫です
宜しくお願いします
< 使用 Excel:Office365、使用 OS:Windows10 >
(1) A1セル =Sheet1!A1:C1 (2) A2セル =FILTER(Sheet1!A2:C9,COUNTIF(Sheet1!E2:E4,Sheet1!C2:C9)=0)
<Sheet1 シート サンプル> <Sheet2 シート 結果図> 行 __A__ ______B______ ___C___ _D_ _____E_____ 行 __A__ ____B____ ___C___ 1 品名 生産地 ランク 除外ランク 1 品名 生産地 ランク 2 製品A 日本 A C 2 製品A 日本 A 3 製品B カンボジア C D 3 製品C 中国 B 4 製品C 中国 B E 4 製品D 韓国 B 5 製品D 韓国 B 5 製品F アメリカ A 6 製品E インドネシア D 7 製品F アメリカ A 8 製品G マレーシア E 9 製品H インド C
(半平太) 2022/09/18(日) 12:36
(2) A2セル =FILTER(Sheet1!A2:C9,COUNTIF(Sheet1!E2:E4,Sheet1!C2:C9)=0) で解決はしたのですが、会社のパソコンのエクセルが2016でしてFILTER関数が使えませんでした エクセルのバージョンを2016とするべきでした 申し訳ありませんが他の方法でお願い出来ますでしょうか 宜しくお願い致します
(まさ) 2022/09/19(月) 14:17
(1) A1セル =Sheet1!A1 右にコピー (2) A2セル =IF(A1="","",IFERROR(INDEX(Sheet1!A:A,AGGREGATE(15,6,ROW(Sheet1!$J$2:$J$9)/(COUNTIF(Sheet1!$E$2:$E$4,Sheet1!$C$2:$C$9)=0),ROW(A1))),"")) (3) B2セル =IF(A2="","",INDEX(Sheet1!B:B,AGGREGATE(15,6,ROW($Z$2:$Z$9)/(COUNTIF(Sheet1!$E$2:$E$4,Sheet1!$C$2:$C$9)=0),ROW(A1)))) 右にコピー
2行目の式を下にコピー
(半平太) 2022/09/19(月) 15:01
表は本当に3列だけ? 何行目まであるのかもわかりませんが、とりあえず・・・
・元表は Sheet1で、データ範囲は2〜50行目 ・別シートに抽出(1行目の見出しは入力済み)
別シート A2 =IF(A1="","",IFERROR(INDEX(Sheet1!A:A,AGGREGATE(15,6,ROW($A$2:$A$50)/(COUNTIF(Sheet1!$E$2:$E$4,Sheet1!$C$2:$C$50)=0),ROW(A1)))&"","")) 右・下コピー
■または A2 =IF(A1="","",IFERROR(INDEX(Sheet1!A:A,AGGREGATE(15,6,ROW($A$2:$A$50)/(COUNTIF(Sheet1!$E$2:$E$4,Sheet1!$C$2:$C$50)=0),ROW(A1)))&"",""))
B2 =IF(A2="","",VLOOKUP(A2,Sheet1!A:C,2,FALSE)) C2 =IF(A2="","",VLOOKUP(A2,Sheet1!A:C,3,FALSE))
A2:C2 を下コピー ※数式を入れるのが何行目からでも ROW(A1)の「A1」を変更しないように
■作業列を使ってもいいのなら 作業列:Sheet1のD列
D2 =IF(C2="","",IF(COUNTIF($E$2:$E$4,C2)=0,ROW(),"")) 下コピー
別シート A2 =IF(A1="","",IFERROR(INDEX(Sheet1!A:A,SMALL(Sheet1!$D:$D,ROW(A1))),"")) 右・下コピー ※これも ROW(A1)の「A1」を変更しないように
ところで ↓ はどうなったんですか? [[20220917170947]]『並び替えで質問です』(まさ)
同じ人ですよね? (笑) 2022/09/19(月) 15:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.