• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの関数について)

エクセルの関数による自動化方法を教えてください

このQ&Aのポイント
  • エクセルでの作業を効率化するためには、数式を使用して自動化する方法があります。
  • しかし、Sheet2とSheet1のデータの特徴が異なるため、困難が伴います。
  • Sheet2は毎月変動するデータベースであり、Sheet1は固定のフォーマットですが、行の順番が異なります。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 セルの切取りや削除挿入等を行っても、なるべく正しい値が抽出される様にしました。  まず、Sheet1(貼り付け先)のC4セルに次の数式を入力して下さい。 =IF(ISNUMBER(VLOOKUP(INDEX($B:$B,ROW()),'Sheet2(貼り付け元)'!$A:$AF,MATCH((TEXT($B$1,"yyyy/m")&"/"&INDEX($3:$3,COLUMN()))+0,'Sheet2(貼り付け元)'!$A$1:INDEX('Sheet2(貼り付け元)'!$1:$1,255),0),FALSE)),VLOOKUP(INDEX($B:$B,ROW()),'Sheet2(貼り付け元)'!$A:$AF,MATCH((TEXT($B$1,"yyyy/m")&"/"&INDEX($3:$3,COLUMN()))+0,'Sheet2(貼り付け元)'!$A$1:INDEX('Sheet2(貼り付け元)'!$1:$1,255),0),FALSE),"")  次に、Sheet1(貼り付け先)のC4セルをコピーして、Sheet1(貼り付け先)のC4~AG24の範囲に貼り付けて下さい。  以上です。

0716100555
質問者

お礼

お礼遅くなりまして申し訳ございません。 決算で忙しくなかなかできなかったのですが、先ほどやってみました。 すんなり出来て感動いたしました。。 すごく感謝しています。 本当に有難うございます。

0716100555
質問者

補足

詳細に回答いただきありがとうございました! 凄く助かります。 家に帰ってから早速試してみます! あとでまたお礼書き込みます!

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! Sheet2の1行目はシリアル値のようなので、Sheet1もシリアル値に変更してみてはどうでしょうか? Sheet1のC3セル(セルの書式設定から表示形式は ユーザー定義 → d としておきます)に =IF(MONTH(DATE(YEAR($B$1),MONTH($B$1),COLUMN(A1)))=MONTH($B$1),DATE(YEAR($B$1),MONTH($B$1),COLUMN(A1)),"") という数式を入れ31日のAG3セルまでオートフィルでコピーしておきます。 これでシリアル値の日付になります。 C4セルには =IF(COUNTIF('Sheet2(貼り付け元)'!$A$2:$A$100,$B4),INDEX('Sheet2(貼り付け元)'!$B$2:$AF$100,MATCH($B4,'Sheet2(貼り付け元)'!$A$2:$A$100,0),MATCH(C$3,'Sheet2(貼り付け元)'!$B$1:$AF$1,0)),"") という数式を入れ、列方向・行方向にオートフィルでコピー! 尚、Sheet2の空白セルと一致する場合は「0」が表示されてしまいますので、 メニュー → ツール → オプション → 「表示」タブ → 「ゼロ値」のチェックを外しておきます。 参考になりますかね?m(_ _)m

0716100555
質問者

お礼

お礼遅くなりまして申し訳ございません! あなた様の回答も大変参考になりました!! 本当に有難うございます!!!

関連するQ&A