• 締切済み

エクセルに関する質問です

以前に同じ様な質問をさせて頂き、 ご回答頂いたのですが、 再度、お教えください 前提として、エクセルのバージョンは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枚 お教えいただけると、大変助かります。よろしくお願いいたします。

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

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枚"」に変更してください。

noname#204879
noname#204879
回答No.5

添付図参照 冗長な説明はナシです。 G5: =IF(F5,ROW(),"") 此れを下方にズズーッとドラッグ&ペースト I3: =IF(ISERROR(SMALL($G$5:$G$11,ROW(A1))),"",INDEX(E:E,SMALL($G$5:$G$11,ROW(A1)))) 此れを右隣にドラッグ&ペースト 範囲 I3:J3 を下方にズズーッとドラッグ&ペースト 理解できなかったら、また再質問せずに、[補足]欄や[お礼]欄にその旨を書き込んでください。 解決していなのにベストアンサーを付けるのは奇妙です。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! ↓の質問と同じ内容ですね。 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)
回答No.3

簡単な方法: 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)
回答No.2

貼付画像のような配置として次の数式で良いと思います。 D2=IF(COUNTIF(B$2:B$5,">0")>=ROW(A1),SUMPRODUCT(LARGE((A$2:A$5*(B$2:B$5>0)),ROW(A1))),"") E2=IF(ISNUMBER(D2),VLOOKUP(D2,A$2:B$5,2,FALSE),"") D2とE2を下へコピーすれば目的通りになります。 貼付画像はExcel 2013で検証しましたがExcel 2003でも再現できるはずです。 数式の解説が必要でしたら、どの部分が分からないかを補足してください。

回答No.1

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枚でない物だけが詰めて表示されます

関連するQ&A