- ベストアンサー
エクセルで表の分解とエラーハンドリングの方法について
- エクセルで表の分解とエラーハンドリングの方法について説明します。
- 具体的には、エクセルで作成した表を別のシートにコピーする際に、特定の部分を分解して表示する方法について解説します。
- また、料金部分にエラーがある場合のハンドリング方法についても説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
項目を分けて表示すれば出来そうな気がします。 シート1 料金 寄付 これをシート2に表示させて、寄付のないときは=if(A11=0,"寄付なし")などと記載したらいかがでしょうか。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
こういう質問内容を「関数で」というのは、エクセルの関数の基礎を良く知らないものの質問。 エクセルではこういう類の問題は難しい。 (1)何処の行で休憩室の行が出てくるか自由 (2)休憩室の行が何行出てくるかも自由 其れで式の入れる場所が普通に関数式を使う場合に比べ、不定である。 条件該当行の抜き出し問題も良く似た問題に出くわす。 計算的なことでもして割り出しをしなくてはならないが、下記のように作業列を使わないと、途端に難しくなる。 VBAでもべんきょうすれば経験あれば、考えかたは極く簡単なプログラムになる。 次に書き出す行を覚えておける変数というものが使えるから。 ーー VBAなりを勉強のこと。 そんなこと(関数で)するより、人間が2行に分解(行増加)するほうが早いが。 ーーーー 下記に、1つの方法の原理を示す。 例データ A2:C19 A列がデータ。下記例の「b」は、質問では「休息室」(喫茶店はタイプミス誤り?)にあたる。 B,Cは関数による導出値。 この場合は「b」の行を2行に増やす単数による解決例。 データは第1行目は空白。 B列のB2の式 =COUNTIF($A$1:A1,"b")+ROW() 下方向に式を複写。 C列C2の式 =INDEX($A$1:$A$100,MATCH(ROW(),$B$1:$B$100,1),1) 下方向に式を複写。 c 2 c a 3 a b 4 b c 6 b d 7 c b 8 d c 10 b b 11 b f 13 c a 14 b b 15 b b 17 f g 19 a 20 b 21 b 22 b 23 b 24 g 上記はA列だけの単一列の例だが、質問のように多数列のデータの場合は、INDEX関数の第1引数のセル範囲、第3引数の列を変えることで、本質問のような多列データに応用も出来る。上記例でどの行を持ってくるかの行が割り出せるから。 ーー もうひとつ。bの列で1番目は2000円、次の行では1000円にすることも出来ると思う。 ーー >また、もし、シート1の料金部分に3000円が入っている時には エラーなので、エラーを表示する方法はあるのでしょうか。 質問の前段階から何のことを言って居るか不明。あれこれ1遍にやらないで、別列に別途に式を入れたら ーーー 結果上記でC列は同一シートで出しているが、別シートに出すこともSheet1!などを加えれば可能と思う。 $100は100行までを予定しているので、適宜増やす(増やしたにする)こと。