• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:明細(?)打ち出しの無料ソフトってあります)

エクセルで明細を一覧化する方法は?

このQ&Aのポイント
  • 無料のソフトを使ってエクセルの明細を一覧化する方法を教えてください。
  • エクセルの関数だと複雑で時間と労力がかかるため、明細や伝票・請求書関連のソフトでの解決策を探しています。
  • 無料のソフトで、名前ごとにエクセルの明細を整理する方法があれば教えてください。

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

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

回答No2です。シート2のA2セルに入力する式は次のような式に変更してください。 =IF(COUNTIF(Sheet1!$E:$E,ROUNDUP(COLUMN(A1)/3,0)+0.001)=0,"",IF(ROW(A1)=1,IF(MOD(COLUMN(A1),3)=1,INDEX(Sheet1!$B:$B,MATCH(ROUNDUP(COLUMN(A1)/3,0)+0.001,Sheet1!$E:$E,1)),""),IF(AND(ROW(A1)>1,COUNTIF(Sheet1!$E:$E,ROUNDUP(COLUMN(A1)/3,0)+(ROW(A1)-1)/1000)>0),IF(MOD(COLUMN(A1),3)=1,TEXT(INDEX(Sheet1!$A:$A,MATCH(ROUNDUP(COLUMN(A1)/3,0)+(ROW(A1)-1)/1000,Sheet1!$E:$E,1)),"m/d"),IF(MOD(COLUMN(A1),3)=2,INDEX(Sheet1!$C:$C,MATCH(ROUNDUP(COLUMN(A1)/3,0)+(ROW(A1)-1)/1000,Sheet1!$E:$E,1)),IF(MOD(COLUMN(A1),3)=0,INDEX(Sheet1!$D:$D,MATCH(ROUNDUP(COLUMN(A1)/3,0)+(ROW(A1)-1)/1000,Sheet1!$E:$E,1)),""))),"")))

shittoritype
質問者

お礼

返事が遅くなりました。 ありがとうございます。 excel2002ではダメでしたが、2010なら出来ました。 それと4人目以降は上手く抽出をしてくれませんでした。 この関数を参考に自力で手を加えてみようと思います。 ありがとうございました。

その他の回答 (3)

noname#143234
noname#143234
回答No.4

ピボットテーブルを使う場合、「名前」をページフィードに配置すれば、個人別の明細になりますが、それだとフィルタを使うのと同じ手間になりますね。 参考URLにある「ページの表示」してからシートをグループ化しての印刷か、VBAを駆使するかくらいですかね。 http://okwave.jp/qa/q1546360.html http://okwave.jp/qa/q6038204.html http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9887.html 私自身は、VBAは分からないので、悪しからず。

shittoritype
質問者

お礼

回答ありがとうございます。 私もVBAはわかりません。 そうなんですよ。 ピボットテーブルだと集計して見やすい表にはなるんですが、 ちょっと思ってる形にならないんです。 関数を示してくれた方がいるので それを参考にもう少し頑張ってみます。 ありがとうございました。

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

無料のソフトということも必要ないでしょう。次のようにすれば十分関数を使って対応できます。一度お試しください。 例えばシート1に元のデータがあるとしてA1セルに日付、B1セルに名前、C1セルに内容、D1セルに金額もそれぞれ項目名が入力されており各データは2行目から下方に並んでいるとします。そこで作業列としてE2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,INT(MAX(E$1:E1))+1.001,INT(INDEX(E$1:E1,MATCH(B2,B:B,0)))+COUNTIF(B$2:B2,B2)/1000)) そこでお求めの表ですがシート2に表示させるとしてA2セルには次の式を入力して右方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$E:$E,ROUNDUP(COLUMN(A1)/3,0)+0.001)=0,"",IF(ROW(A1)=1,IF(MOD(COLUMN(A1),3)=1,INDEX(Sheet1!$B:$B,MATCH(ROUNDUP(COLUMN(A1)/3,0)+0.001,Sheet1!$E:$E,0)),""),IF(AND(ROW(A1)>1,COUNTIF(Sheet1!$E:$E,ROUNDUP(COLUMN(A1)/3,0)+(ROW(A1)-1)/1000)>0),IF(MOD(COLUMN(A1),3)=1,TEXT(INDEX(Sheet1!$A:$A,MATCH(ROUNDUP(COLUMN(A1)/3,0)+(ROW(A1)-1)/1000,Sheet1!$E:$E,0)),"m/d"),IF(MOD(COLUMN(A1),3)=2,INDEX(Sheet1!$C:$C,MATCH(ROUNDUP(COLUMN(A1)/3,0)+(ROW(A1)-1)/1000,Sheet1!$E:$E,0)),IF(MOD(COLUMN(A1),3)=0,INDEX(Sheet1!$D:$D,MATCH(ROUNDUP(COLUMN(A1)/3,0)+(ROW(A1)-1)/1000,Sheet1!$E:$E,0)),""))),"")))

shittoritype
質問者

お礼

回答、ありがとうございます。 関数、すごいですね。 試してみます。

noname#143234
noname#143234
回答No.1

エクセルの「ピボットテーブル」機能を使われてはどうでしょう。 お考えになっているようなことをするための機能だと思います。

shittoritype
質問者

お礼

回答、ありがとうございます。 確かにピボットテーブルだと計算結果は得られるのですが 一人ずつ明細のような形にして打ち出したいのです。