- ベストアンサー
Excelでの並び変え方法とは?
- Excel2003で開くとerrorが発生し、使えない状態となった。Excel2003でも計算可能な式を教えてほしい。
- 行に日付、列に商品名、その間に販売個数のデータがあり、日付順に並び変えたい。データの空白を上に詰める方法を教えてほしい。
- 同じシート上に配置し、余分な行や列を使わずに処理を行いたい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
今回はどう上手くいかなかったのかちゃんと説明できましたね。 同じく前回と同じ表の配置で。 I2には =IF(ROW(I1)>COUNT($B$3:$F$33),"",INDEX(A:A,SMALL(IF($B$3:$F$33<>"",ROW($B$3:$F$33)),ROW(I1)))) と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力、下向けに沢山コピー。 J2には =IF(ROW(J1)>COUNT($B$3:$F$33),"",INDEX($2:$2,MOD(SMALL(IF($B$3:$F$33<>"",ROW($B$3:$F$33)*100+COLUMN($B$3:$F$33)),ROW(J1)),100))) と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力、下向けに沢山コピー。 K2は今回はもっと簡単に =IF(I2="","",VLOOKUP(I2,A:F,MATCH(J2,$2:$2,0))) と記入、これはふつーにEnterで入力、下向けに沢山コピー。 します。
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 前回回答した者です。 前回の数式も手元のExcel2003で作成したもので、 こちらで検証したところちゃんと表示されましたので、投稿しました。 エラーの原因として考えられるコト (1)配列数式になっているかどうか? (2)数式内の範囲指定の列数がOFFSET関数やINDEX関数等の列数と一致しているかどうか? 前回は5品目での数式でしたので、一番気がかりなのは範囲指定の列数違いです。 前回アップした配置で仮に20品目の場合の数式を参考程度で載せておきます。 B2セル(配列数式)は =IF(A2="","",INDEX(Sheet1!$B$2:$U$2,,SMALL(IF(OFFSET(Sheet1!$B$2:$U$2,MATCH(A2,Sheet1!$A$3:$A$33,0),,1)<>"",COLUMN(A1:T1)),COUNTIF($A$2:A2,A2)))) C2セル(配列数式ではありません)は =IF(COUNTBLANK(A2:B2),"",INDEX(Sheet1!$B$3:$U$33,MATCH(A2,Sheet1!$A$3:$A$33,0),MATCH(B2,Sheet1!$B$2:$U$2,0))) といった感じで数式内の列範囲部分を変更する必要があります。 ぱっ!と思いつくのはこの程度です。 ※ 他の方も良い方法を投稿されていますので、そちらも試してみてはどうでしょうか?m(_ _)m
- keithin
- ベストアンサー率66% (5278/7941)
あなたが前のご相談に書いた通りにご自分のエクセルを作成します I2に =IFERROR(INDEX(A:A,SMALL(IF($B$3:$F$33<>"",ROW($B$3:$F$33)),ROW(I1))),"") と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力。下向けに沢山コピー。 J2に =IFERROR(INDEX($2:$2,MOD(SMALL(IF($B$3:$F$33<>"",ROW($B$3:$F$33)*100+COLUMN($B$3:$F$33)),ROW(J1)),100)),"") と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力。下向けに沢山コピー。 K2に =IFERROR(INDIRECT(TEXT(SMALL(IF($B$3:$F$33<>"",ROW($B$3:$F$33)*100+COLUMN($B$3:$F$33)),ROW(K1)),"!R00!C00"),FALSE),"") と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力。下向けに沢山コピー。 すると出来ます。
補足
もう一度試してみました。 現在、Excel2003[.xls]で作成されたものを使用し、 Excel2010互換モードで開いて式を打ち込みました。 表示はされるのですが、上書き保存時に「機能の大幅な損失」とう言うエラーが出てしまいます。 関数が2007より以前のものでは使用できないようです。 保存後、2003で開いてみると、計算式のところが[#NAME?]となってしまいます。 互換性モードに問題があるのでしょうか?
お礼
こちらの数式で組んだところ、 エクセル2003でも正しく表示させることができました! ありがとうございます。