- 締切済み
エクセルに関する質問です
以前に同じ様な質問をさせて頂き、 ご回答頂いたのですが、 再度、お教えください 前提として、エクセルのバージョンは2003になります 1.元のデータ 金種 : 枚数 10,000円 : 5枚 5,000円 :2枚 1,000円 : 0枚 500円 :3枚 なお、金種10,000円のセルの位置は E5の位置にあります。 これが前提で、別のセル(どこでも良いのですが)に、関数を使用して枚数0枚以外を表示したいのです。 (結果が以下のようになるように) 2.結果 金種 : 枚数 10,000円 : 5枚 5,000円 :2枚 500円 :3枚 お教えいただけると、大変助かります。よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- MackyNo1
- ベストアンサー率53% (1521/2850)
1つの数式だけでかつCtrl+Shift+Enterの確定をしない方法で抽出リストを表示したいなら、以下の式を入力して右方向に1つ、下方向に金種数分だけオートフィルコピーします(枚数が数字で入力されている場合)。 =INDEX(E:E,SMALL(INDEX(($F$5:$F$12=0)*100+ROW($F$5:$F$12),),ROW(1:1)))&"" 枚数の欄が「0枚」など文字列で入力されているなら「0」の部分を「"0枚"」に変更してください。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! ↓の質問と同じ内容ですね。 http://okwave.jp/qa/q8819388.html 一番簡単で判りやすいのは↓の画像のように作業用の列を設けるコトだと思います。 ↑のサイトのNo.3さんとやり方は一緒です。 画像では作業列G5セルに =IF(F5>0,ROW(),"") という数式を入れフィルハンドルで下へコピーしています。 そしてI5セルに =IF(COUNT($G:$G)<ROW(A1),"",INDEX(E:E,SMALL($G:$G,ROW(A1)))) という数式を入れ、列・行方向にフィルハンドルでコピー! これで画像のような感じになります。 一つ気になる事があります。 質問では「枚数」の列は「5枚」のようになっていますが、 実際はそのように文字列で入っているのでしょうか? そうであれば、セル範囲を範囲指定 → 右クリック → セルの書式設定 → 表示形式タブ → ユーザー定義 → 「G/標準」となっているところを消去し 0枚 と入力しOK そして単に 5 とか 3 のように数値のみを入力します。 これで仮に 5 と入力すると 5枚 と表示されます。 ※ 作業列が目障りであれば遠く離れた使っていない列に設けるか、作業列を非表示にしておきます。 ※ 数式内の >ROW(A1) はどこの列でも構いませんが、必ず「1」を指定します。m(_ _)m
- keithin
- ベストアンサー率66% (5278/7941)
簡単な方法: E5を1万円にして金種表を作成、その左隣のD5に D5: =IF(F5>0,ROW(),"") 以下コピーしておきます 欲しい結果の表は G2: =IF(ROW(G1)>COUNT(D$5:D$8),"",VLOOKUP(SMALL(D$5:D$8,ROW(G1)),D$5:E$8,2)) 以下コピー H2: =IF(G2="","",VLOOKUP(G2,E$5:F$8,2,FALSE)) 以下コピー で完成。 今度はセル範囲を少し細かく指定しているので、間違えないように作成します アナタが実際にご自分のエクセルで入れて試してみた数式と、それで一体どんな不都合があったのか、あなたの実際のエクセルがいま実際にどうなってるのか状況説明があれば、もうちょっと簡単なやりかたもお話し出来たかもしれないんですが。次回以降のご参考に。
- bunjii
- ベストアンサー率43% (3589/8249)
- ryo_ Deathscythe(@Deathscythe)
- ベストアンサー率14% (515/3615)
G5=IF(F5="0枚","",COUNT(G$1:G4)+1) H5=IF(F5="0枚","",E5) I5=IF(F5="0枚","",F5) これをそれぞれ8行目までコピー J5に1、J6に2、J7に3.J8に4を入力し K5=IFERROR(VLOOKUP(J5,$G$5:$I$8,2,FALSE),"") L5=IFERROR(VLOOKUP(J5,$G$5:$I$8,3,FALSE),"") これをそれぞれ8行目まで入れれば KとLの5~8行目で0枚でない物だけが詰めて表示されます