エクセルで表の分解とエラーハンドリングの方法について

このQ&Aのポイント
  • エクセルで表の分解とエラーハンドリングの方法について説明します。
  • 具体的には、エクセルで作成した表を別のシートにコピーする際に、特定の部分を分解して表示する方法について解説します。
  • また、料金部分にエラーがある場合のハンドリング方法についても説明します。
回答を見る
  • ベストアンサー

エクセルと関数について

エクセルと関数について 売上日 性別 売上施設    料金 1月7日 男 売店 7000 1月6日 女 喫茶店 6000 1月5日 男 休憩室 3000 1月4日 女 売店 6000 1月3日 男 休憩室 3000 上のような表をエクセルでシート1に作成しました。 実は四行目及び六行目の売上施設「喫茶店」の3000円は 料金の2000円と寄付の1000円からなっています。 やりたい処理は、シート1をシート2にコピーした瞬間に この四行目及び六行目を分解して、以下のように表示する方法は あるのでしょうか。 売上日 性別 売上施設    料金 1月7日 男 売店 7000 1月6日 女 喫茶店 6000 1月5日 男 休憩室 2000 1月4日 女 売店 6000 1月3日 男 休憩室 2000 1月5日 男 休憩室 1000 1月3日 男 休憩室 1000 要は、3000円の部分を2000円に、新たに行を挿入して 1000円部分を表示したいのです。 また、もし、シート1の料金部分に3000円が入っている時には エラーなので、エラーを表示する方法はあるのでしょうか。 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

項目を分けて表示すれば出来そうな気がします。 シート1     料金    寄付 これをシート2に表示させて、寄付のないときは=if(A11=0,"寄付なし")などと記載したらいかがでしょうか。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

こういう質問内容を「関数で」というのは、エクセルの関数の基礎を良く知らないものの質問。 エクセルではこういう類の問題は難しい。 (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行までを予定しているので、適宜増やす(増やしたにする)こと。

関連するQ&A

  • エクセル 並び替え ユーザー設定リストについて

    エクセル 並び替え ユーザー設定リストについて エクセル2003で以下のような表を作成しました。 売上日 性別 売上施設 交通機関 年齢 1月7日 男 売店 電車 80 1月6日 女 喫茶店 車 70 1月5日 男 休憩室 電車 60 1月4日 女 売店 車 50 1月3日 男 休憩室 電車 40 1月2日 女 喫茶店 車 30 1月1日 男 売店 電車 20 2つの条件で並び替えをしたいのです。 一つ目は性別で、二つ目は売上施設に関してユーザー設定リストで作成したいのです。 エクセル2007だと二つ目の条件にユーザー設定リストを作成できるのですが 2003だとうまくいきません。 売上施設のユーザーリストの順番は、休憩室→喫茶店→売店です。 性別を男を優先に、 休憩室→喫茶店→売店 次に女を優先に 休憩室→喫茶店→売店 にして、2003で並び替えするにはどうすればいいのでしょうか。 よろしくお願いします。

  • エクセルと値の検索について

    エクセルと値の検索について 売上日 性別 売上施設 交通機関 単価 1月7日 男 売店 電車 1000 1月6日 女 喫茶店 車 20000 1月5日 男 休憩室 電車 1000 1月4日 女 売店 車 1000 1月3日 男 休憩室 電車 1000 1月2日 女 喫茶店 車 1000 1月1日 男 売店 電車 1000 2月1日 女 休憩室 車 1000 2月1日 男 部屋 電車 1000 2月2日 女 お土産屋 車 1000 2月3日 男 喫茶店 電車 1000 2月4日 女 売店 車 1000 上記のような表をエクセルで作成しました。 単価に一つでも「20000」の値があれば、 それを単価の上のセルに「単価に20000が含まれているセルがあります」と 表示したいのです。 関数で処理できるのでしょうか。お願いします。

  • 売上日 性別 売上施設 交通機関 年齢 単価

    売上日 性別 売上施設 交通機関 年齢 単価 1月7日 男 売店 電車 80 1000 1月6日 女 喫茶店 車 70 2000 1月5日 男 休憩室 電車 60 3000 1月4日 女 売店 車 50 4000 1月3日 男 休憩室 電車 40 5000 1月2日 女 喫茶店 車 30 6000 1月1日 男 売店 電車 20 7000 2月1日 女 休憩室 車 10 8000 2月1日 男 部屋 電車 0 9000 2月2日 女 お土産屋 車 40 10000 2月3日 男 喫茶店 電車 30 11000 2月4日 女 売店 車 30 12000 エクセル2007で上記のような表を作りました。 この後、売上施設ごとの単価を一発で出したいのですが、関数(IF関数とか)で処理すれば早いか ピボットテーブルで処理するのが早いか、迷っています。 性別ごとの単価を見たいとか、月ごとに単価を見たいと思えば、やはりピボットのほうがいいのでしょうか。 初心者ですいません。お願いします。

  • エクセルと関数について

    エクセルと関数について 売店チケット 件数 料金 性別 6000 2 6000 男 6000 0 6000 女 上記のような表をエクセルで作成しました。 左からA列 売店チケット B列 件数 C列 料金 D列 性別です。 売店チケットは3000円単位で、6000円だと2件になります。 でも、手打ち入力なので、ミスすることも多く、B列の0件はエラーで、正しくは2件なのです。 そこで質問なのですが、関数で もし、A列に金額が入っていれば(ゼロ以外)、B列の0は数字上 おかしいので、エラーを表示するような数式を作りたいです. 例えば、E列の1行目に「エラーですよ」的な表示はまとめてできますか? B列は1行目から3000千行目位までデータが入っているとします。 売店チケットに金額の表示があるのに、B列が一件でもゼロだと間違いなのです。 うまく表現できていないかもしれませんが、よろしくお願いします。

  • エクセルマクロ 並び替えについて

    エクセルマクロ 並び替えについて 施設利用表 A列 B列 C列 D列    E列  F列 名前 予約日 入金 来客施設  予定利用料 利用回数 Fさん 7月10日 入金 売店    2,900  1 Hさん 7月15日 入金 喫茶店     300  2 Dさん 7月19日 入金 喫茶店    3,200  4 Jさん 7月17日 入金 部屋     550     2 Bさん 7月18日 入金 お土産屋    2,500  1 Eさん 7月28日 入金 売店    3,700  3 Gさん 7月1日 入金 休憩室    2,290  4 Aさん 7月23日 入金 喫茶店    3,000  6 Iさん 7月16日 キャンセル 部屋     400  0 Cさん 7月9日 キャンセルお土産屋    3,700  0 上記のような表を作ったのですが、上記の表で並び変え 計算マクロを作成したいのですが、上手くいきません。 並び変えの優先順位は 最優先はCなのですが、次の優先のD列はオリジナルで以下のようにしたいのです。 その次の優先列は日付のB列です (入金)喫茶店 (入金)売店 (入金)休憩室 (入金)部屋 (入金)お土産屋 なおかつ、施設ごとに予定利用料を加算して任意のセルに出し、また、施設ごとに利用回数も加算して任意のセルに出したいです。 VBAのコートを教えていただければと思いました。

  • エクセルの関数

    エクセルの関数についての質問です。 シート1(売上)日付・金額 シート2(月報)日付・金額 シート1(売上)から日付と金額を拾い出して、シート2(月報)に集計したいのですが、シート1(売上)では日付が同じときもあり、シート2(月報)では金額も合計しなくてはいけないのです。もし、ご存知の方がいらっしゃいましたら教えてください。 こんな感じです。 シート1(売上) 日付   金額 2月2日  20000 2月4日  25000 2月5日  20000 2月4日  18000 2月7日  20000 2月10日  23000  ・    ・  ・    ・  ・    ・ シート2(月報) 日付   金額 2月1日  ここに関数 2月2日  ここに関数 2月3日  ここに関数 2月4日  ここに関数 2月5日  ここに関数 2月6日  ここに関数 2月7日  ここに関数  ・     ・  ・     ・  ・     ・ 伝わりましたでしょうか? よろしくお願い致します。

  • Excel でのデータのマージ

    ◆シートA 下記の情報が載っています。 行数 名前 性別 好きな食べ物 1行目 太郎 男 (空白) 2行目 桜子 女 (空白) 3行目 次郎 男 (空白) 4行目 三郎 男 (空白) 5行目 菊子 女 (空白) 6行目 梅子 女 (空白) (以下略) で、別のシートには、下記のような情報が載っています。 ◆シートB 別のシートで、下記のような情報があります。 行数 名前 性別 好きな食べ物 1行目 桜子 女 マシュマロ 2行目 菊子 女 チョコレート 3行目 梅子 女 キャンディー (以下略) このシートに出てくるのは、女性だけですが、 出てくる人の順序は、シートAと同じ順序です。 /***********************************************/ ◆質問◆マージをするにはどうすればよいでしょうか? シートAで、性別女性でフィルターを掛けると 名前 性別 好きな食べ物 桜子 女 (空白) 菊子 女 (空白) 梅子 女 (空白) となるので、シートBの「好きな食べ物」の列をコピーして、 シートAに貼り付けたら、全然変な風になってしまいました。 下記のようになってしまいました。 1行目 太郎 男 マシュマロ 2行目 桜子 女 チョコレート 3行目 次郎 男 キャンディー 4行目 三郎 男 (空白) 5行目 菊子 女 (空白) 6行目 梅子 女 (空白) (以下略) /***********************************************/ フィルターされている行にだけ、データを貼り付けたいのですが、 どのようにして、マージをすれば良いのでしょうか?

  • エクセルで関数を使って結果の値から任意の数値を引く

    シート1のA列に性別、B列に料金入力欄があり、シート2のA列に料金、1行目に男性、2行目に女性のデータがある場合、シート2の料金をシート1のB列に反映させる際に女性の料金のみ300を引いた値を返すとしたらどのような関数を使えばよいでしょうか。 よろしくお願い致します。

  • エクセルの関数について

    エクセルの関数について 【Sheet1】 B列・・・J列 売上日  商品名 9/12   りんご 9/12   みかん 9/12   りんご 9/14   りんご という売上表があったとして、Sheet2にJ列の項目ごとに売上日を表示できる数式を教えていただきたいです。こんな↓イメージです。 【Sheet2】 A列・・B列・・・C列・・・・ 商品名 売上日1 売上日2・・・売上日31 りんご 9/12  9/14 【Sheet1】の売上表は、売上が立つごとに入力していく表なので、 一日に同じ商品名(J列)が何度もでてきますが、同一売上日は、1回だけの表示にしたいです。 売上表は月でしめるので、毎日売れたとして、売上日は最大31日です。 【Sheet1】の売上表は、パソコンの苦手なパートの方が作成しているので、いじりたくありません。 当方あまりパソコンが得意ではないため、説明が分かりにくくて申し訳ないのですが、よろしくお願いします。

  • エクセルと関数について

    エクセルと関数について 以下のような表を作成しました。 漫画喫茶の料金を計算したいのですが、 喫茶Aは1時間まで400円、それ以降は30分毎に200円加算。 喫茶Bは20分毎に300円 喫茶Cは10時間まで1時間ごとに100円、10時間以降は1000円加算。 下記表のA列3行目以降に時間の表示を入力しています。 1時間も1:00ではなく、数値の1.0を入力して時間としています。 下記の表の空欄セルにどんな数式を入力すればいいでしょうか。 よろしくお願いします。

専門家に質問してみよう