• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:売上日 性別 売上施設 交通機関 年齢 単価)

売上施設ごとの単価を一発で出す関数はIF関数とピボットテーブル、どちらが早い?

このQ&Aのポイント
  • エクセル2007で表を作成しましたが、売上施設ごとの単価を一括で取得したいです。IF関数とピボットテーブル、どちらが効率的なのでしょうか?
  • 性別ごとの単価や月ごとの単価を調べたい場合、ピボットテーブルが便利です。初心者の方でも簡単にデータをまとめることができます。
  • IF関数を使えば、特定の条件に合うデータだけを取得することができます。しかし、複雑な条件を設定する場合はピボットテーブルの方が見やすいかもしれません。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

作業列を作って関数のみで表示させるようにしてはどうでしょう。 例えばお示しの表で1行目は項目名でA1セルの売上日からF1セルの単価まで入力されており2行目から下方にそれぞれのデータがあるとします。 施設ごとの単価の場合には施設が仮に5施設まであるとしたらG列からK列までを作業列にします。なお、売上施設、交通機関、性別、売上日など単価を調べたい項目の見出しはL1セルに入力することとして、仮にL1セルに売上施設と入力した場合にそれぞれの施設の名称はM1セルに売店、N1セルに喫茶店、O1セルに休憩室などと入力することにします。 また、L1セルに売上日と入力した場合にはM1セルに1月、N1セルに2月、O1セルに3月などと入力することにします。 さて、作業列ですがG2セルには次の式を入力してK2セルまでオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR($A2="",$L$1="",M$1=""),"",IF($L$1="売上日",IF(MONTH($A2)=SUBSTITUTE(M$1,"月","")*1,MAX(G$1:G1)+1,""),IF(INDEX($A:$E,ROW(A2),MATCH($L$1,$A$1:$E$1,0))=M$1,MAX(G$1:G1)+1,""))) そこで単価をM列から右の列を使って表示させるのですがそのためには次の式をM2セルに入力した後でQ2セルまでオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(M$1="",ROW(A1)>MAX(G:G)),"",INDEX($F:$F,MATCH(ROW(A1),G:G,0))) このようにすることでご質問の内容のすべてを解決できるように思います。一度お試しください。

その他の回答 (1)

回答No.1

性別ごとの単価ではなく、単価の合計や平均などを出すなら ピボットテーブルが早く簡単です。 人気がないのは、リアルタイムで集計されず、データを追加、変更、 削除した場合、更新作業が必要、レイアウトの自由度が少なかったり、 ピボットテーブルのデータを分析などに使いにくい点は否めません。

関連するQ&A

専門家に質問してみよう