よねさんのWordとExcelの小部屋 なんでも掲示板

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

ツリー一括表示

Nomal 請求明細書へ転記 /haku (21/05/27(Thu) 11:11) #13512
Nomal Re[1]: 請求明細書へ転記 /よねさん (21/05/27(Thu) 13:04) #13513
  └Nomal Re[2]: 請求明細書へ転記 /haku (21/05/27(Thu) 16:52) #13514
    └Nomal Re[3]: 請求明細書へ転記 /よねさん (21/05/27(Thu) 17:21) #13515
      └Nomal Re[4]: 請求明細書へ転記 /よねさん (21/05/28(Fri) 12:52) #13516
        └Nomal Re[5]: 請求明細書へ転記 /haku (21/05/28(Fri) 13:30) #13517


親記事 / ▼[ 13513 ]
■13512 / 親階層)  請求明細書へ転記
□投稿者/ haku -(2021/05/27(Thu) 11:11:03)
     よねさんへ
      いつも拝見させていただいています。
     一覧表から請求書へ転記をしたいのですが、うまく行かず苦戦しています。
     ご教授お願いいたします。
    
     【シート名:入力】
     
          A列 B列   C列    D列    E列    F列   G列   H列
     1行目  a@検索値  日付   品目   引取数  納品数  単価  金額
     2行目  1     21/05/01  りんご   1,000   800   100  80,000
     3行目  2     21/05/01  バナナ       284      284       50    22,720
     4行目  3     21/05/06  りんご    800   900   100  90,000
     5行目  4     21/05/07  りんご   1,000   1,000   100  100,000
     6行目  5     21/05/07  バナナ    400   100    50  5,000
    
      この様な感じで、1日から31日まで入力をしています。
      B列の検索値には、=IF(C2="","",C2&COUNTIF($C$2:C2,C2))と数式を入れて、同じ日付を
      2105011、2105012と区別できる様にして【シート名:納品書】を日ごとに出せるように
      反映させています。
      D列の品目は入力規則を使用しています。
      H列の金額には、=IF(D2="","",G2*F2)の数式を入れています。
    
      そこで、【シート名:請求書】H4セルに日付を2021/05/31と入力したら
    
           A列    B列    C列   D列  E列  F列
     14行目 a@ 日付   品 目 納品数 単価  金 額
     15行目 1  21/05/01 りんご  800  100  80,000 
     16行目 2  21/05/01 バナナ  284   50   22,720
     17行目 3  21/05/06 りんご  900  100  90,000
     18行目 4  21/05/07 りんご 1,000    100 100,000
     19行目 5  21/05/07 バナナ   100   50  5,000
     20行目 6   ・
     21行目 7    ・
    
      この様に1日〜31日までの分を自動で転記できる様にしたいです。
     
     説明下手ですみません。よろしくお願いいたします。
      
       
    
    
    
    
    
    
    
    
    
      
      

[ □ Tree ] 返信/引用返信 削除キー/

▲[ 13512 ] / ▼[ 13514 ]
■13513 / 1階層)  Re[1]: 請求明細書へ転記
□投稿者/ よねさん -(2021/05/27(Thu) 13:04:27)
    2021/05/27(Thu) 13:08:23 編集(投稿者)
    Filter関数が使える場合(Microsoft365の場合)は容易にデータを抽出できます。
    入力シートのデータをテーブルにします。
    ここではテーブル名を「テーブル1」としています。
    
    すると、A15セルに下のようにFilter関数を使えば5月のデータが抽出できます。
    =FILTER(FILTER(テーブル1,MONTH(テーブル1[日付])=MONTH(請求書!H4)),{1,0,1,1,0,1,1,1})
    
    Microsoft365でない場合は関数を作成するのはちょっと面倒そうな気がします。
    フィルターでデータを日付で抽出して、それをコピーぺすれば良さそうに思いました。
    不要な列は削除する必要がありますが、特別難しい操作とは思えませんがいかがでしょうか?
    
    または、B列の検索値には、=IF(C2="","",C2&COUNTIF($C$2:C2,C2))と日付ごとにナンバリングされていますが、
    さらにもう1列作業列を追加して(検索値2)、抽出したい月でナンバリングすれば、1から順番にデータを取り出せばよさそうに思います。
    
    以上のように考えましたがいかがでしょうか?

[ 親 13512 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13513 ] / ▼[ 13515 ]
■13514 / 2階層)  Re[2]: 請求明細書へ転記
□投稿者/ haku -(2021/05/27(Thu) 16:52:51)
      
      よねさんへ
    
       ご連絡ありがとうございます。
      Microsoft365ではないので、Filter関数は使えませんでした。
    
      さらにもう1列作業列を追加して(検索値2)、抽出したい月でナンバリングすれば、1から順番にデータを取り出せばよさそうに思います。
      こちらの、やり方でやってみようと思い、検索値2の列を作りました。
      COUNTIF関数とMONTH関数で取り出せばいいと思いやってみたのですがうまくいきませんでした。
      月だけを取り出してナンバーリングしていくには、どの様にしたらよろしいでしょうか?
      申し訳ありません。よろしくお願いいたします。

[ 親 13512 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13514 ] / ▼[ 13516 ]
■13515 / 3階層)  Re[3]: 請求明細書へ転記
□投稿者/ よねさん -(2021/05/27(Thu) 17:21:45)
    2021/05/27(Thu) 17:28:19 編集(投稿者)
    一寸雑なことを書いてしまったようです。
    具体的には以下のような作業列を作成して、J列を検索して取り出せばよいと思います。
    一応、年は西暦表示にしてみましたが、この辺は使用しやすい形で構わないとは思います。
    
    ここでは I2セルに↓を入力して、202105とか202106のように年月を取り出します。
    =IF(C2="","",TEXT(C2,"yyyymm"))
    
    J2セルに↓と入力して、同じ年月に連番を振ります。ここでは区切り文字に _(アンダーバー)お使っています。
    =IF(I2="","",I2&"_"&COUNTIF($I$2:I2,I2))
    
    データリストはテーブルにした方が使い勝手がよくなると思います。
    以上です。
    (追加)
    データの抽出はすでにできていると思いますが、もしかして作業列をB列に持ってきているということは
    VLOOKUP関数をお使いでしょうか?
    こちらでは、I,J列とデータの後ろに追加しましたので、INDEX関数とMATCH関数の組み合わせで使用するパターンになります。
    作業列を前の列に持ってくれば、同様にVLOOKUP関数でOKですので、この辺は柔軟に対処ください。

[ 親 13512 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13515 ] / ▼[ 13517 ]
■13516 / 4階層)  Re[4]: 請求明細書へ転記
□投稿者/ よねさん -(2021/05/28(Fri) 12:52:57)
    数式もちょっとややこしくなりますので、書いてみます。
    テーブルにした場合と、範囲のままの両方を書いています。
    B列に「検索値」があったり、書き出しに不要な「取引量」などの列を挟んでいるので、
    数式を入力する手間が増えます。
    
    以下にデータを取り出す数式を書いておきます。
    元データはテーブルにしていますので、以下のようになります。
    A15セル =IFERROR(INDEX(テーブル1[],MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(A1),テーブル1[J列],0)),"")
    B15セル =IFERROR(INDEX(テーブル1[日付],MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(A1),テーブル1[J列],0)),"")
    C15セル =IFERROR(INDEX(テーブル1[品目],MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(B1),テーブル1[J列],0)),"")
    D15セル =IFERROR(INDEX(テーブル1[納品数],MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(C1),テーブル1[J列],0)),"")
    E15セル =IFERROR(INDEX(テーブル1[単価],MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(D1),テーブル1[J列],0)),"")
    F15セル =IFERROR(INDEX(テーブル1[金額],MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(E1),テーブル1[J列],0)),"")
    
    テーブルでない場合は
    =IFERROR(INDEX(入力!$A$2:$A$11,MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(A1),入力!$J$2:$J$11,0)),"")
    =IFERROR(INDEX(入力!$C$2:$C$11,MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(A1),入力!$J$2:$J$11,0)),"")
    =IFERROR(INDEX(入力!$D$2:$D$11,MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(B1),入力!$J$2:$J$11,0)),"")
    =IFERROR(INDEX(入力!$F$2:$F$11,MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(C1),入力!$J$2:$J$11,0)),"")
    =IFERROR(INDEX(入力!$G$2:$G$11,MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(D1),入力!$J$2:$J$11,0)),"")
    =IFERROR(INDEX(入力!$H$2:$H$11,MATCH(TEXT($H$4,"yyyymm")&"_"&ROW(E1),入力!$J$2:$J$11,0)),"")
    
    A15:F15セルを選択して、下方向へフィルハンドルをドラッグして、必要行数分数式をコピーします。
    以上です。

[ 親 13512 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13516 ] / 返信無し
■13517 / 5階層)  Re[5]: 請求明細書へ転記
□投稿者/ haku -(2021/05/28(Fri) 13:30:28)

      よねさんへ

      お世話になっております。
      できました。希望していた通りの結果になりました。

      本当に本当にありがとうございました。

      また、よろしくお願いいたします。

      勉強頑張ります。

[ 親 13512 / □ Tree ] 返信/引用返信 削除キー/


Pass/

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

- Child Tree -