Excel総合相談所 136 ..
[2ch|▼Menu]
621:名無しさん@そうだ選挙にいこう
19/09/10 15:19:11.17 .net
>>617
ツールの編集ではなく使用ツール変える権限の話をしとるんだが

622:名無しさん@そうだ選挙にいこう
19/09/10 16:15:39.42 .net
>>620 実際に試してません、あしからず。
Dim 値 as Integer ' DF4,DU4とも整数という前提です
Dim cnt as integer, セル as Range
With ActiveSheet    ' 処理対象シートの指定
  値 = .Range("DF4").Value
  If 値 < .Range("DU4").Value Then 値 = .Range("DU4").Value
  Select Case 値
  Case Is <= 1
    .Rows("14:15").Delete
  Case Is = 2
    ' なにもしない
  Case Is >= 3
    .Rows("14:15").copy
    Set セル = .Range("A16")  ' 貼り付け開始位置
    For cnt = 1 to 値  ' 3以上のときはその値回数分貼り付けを繰り返す
      セル.PasteSpecial Paste:=xlPasteAll  ' 貼り付ける種類はお好みで
      Set セル = セル.Offset(2, 0)         ' 貼り付け先を2行下へ
    Next cnt
  End Select
End With
もし、”高い数値”が3のときの貼り付けは1回 ということであれば For cnt = 3 to 値 に変更してください。

623:名無しさん@そうだ選挙にいこう
19/09/10 17:38:38.73 .net
>>572-573
ありがとうございます
勉強させてもらってます

624:619
19/09/10 20:34:21.29 .net
>>622
ありがとうございます。勉強になりました<(_ _)>

625:名無しさん@そうだ選挙にいこう
19/09/11 08:09:15.75 .net
>>621
どっから権限の話出た?
君の脳内?

626:名無しさん@そうだ選挙にいこう
19/09/11 09:28:19.87 .net
>>625
普通に考えてExcelの話してるのにAccessで良いじゃんて話して、いやExcel使ってるんだけどと言われてじゃあパッケージソフト入れれば良いって話通じてなさすぎじゃね
後から来た新入りがAccessに変えましょう!とかパッケージに入れ替えましょう!とか言えないでしょって話だろ

627:名無しさん@そうだ選挙にいこう
19/09/11 12:25:12.51 .net
>>626
そんな事知らんがな
Excelを万能ツールとでも思ってるの?

628:名無しさん@そうだ選挙にいこう
19/09/11 13:03:06.47 .net
シート"計算"のB1から最下行のCV列までコピーし、シート"累積"の最下行に貼り付ける。
最下行はシート「計算」・「累計」共にB〜CVまでのいずれかの最下行
このコードを教えてください。

629:名無しさん@そうだ選挙にいこう
19/09/11 15:25:43.49 .net
>>600
>>602
こういうことです!
ありがとうございます!

630:名無しさん@そうだ選挙にいこう
19/09/11 17:51:56.67 .net
「今年」シートのE列に「商品名」、G列に「製造日」、J列に「製造工場」が入っていて、
別の「指示書」シートのC列に商品名、E列に製造日、H列に製造工場を入力すると、
I列に「今年」シート商品名・製造工場が一致するなかでG列から今日の日付から最も近い前回製造日が表示される関数を組みたいです。
3つの条件のうち2つ一致する中から1つの近い条件の引っ張り方がこんがらがっています。
MATCHとかDGETとか調べてやっても返ってくるのはエラーばかり…
どなたかご教授をおねがいします!

631:名無しさん@そうだ選挙にいこう
19/09/11 18:41:35.38 .net
>>627
個人がどう思ってようが職場では用意された環境でやるしかないんだぞ
理屈の通じないやつだなぁ

632:名無しさん@そうだ選挙にいこう
19/09/11 19:01:15.71 .net
>>630
VBAマクロなしだと・・・ピボットテーブルとの組み合わせかなあ。
今年シート対象でピボットテーブルで行方向に商品名、列方向に製造工場、値フィールドに最大値を指定すると、
商品名と製造工場の組み合わせ別に最大値=最新の日付の表が出来上がる。
あとはINDEXlとMATCHを行方向、横方向で組み合わせればなんとかできそうですが。
ところで、指示書シートのE列(製造日)は、今回の質問には関係しませんよね?

633:名無しさん@そうだ選挙にいこう
19/09/11 19:12:35.64 .net
>>630
商品名と製造工場を文字列連結で繋げて(K2 = E2 & "-" & J2 みたいに)単独のキー列にしてしまえば後の処理が楽なんじゃないかな
それで、ソートが許されるなら製造日(G列)で降順でソートしたら、K列をキーにしてVlookupで拾える
vlookupだと製造日をK列より右側にコピーしないとならんけど

634:名無しさん@そうだ選挙にいこう
19/09/11 19:20:30.27 .net
>>630
=MAXIFS(今年!$G$2:$G$10,今年!$E$2:$E$10,C1,今年!$J$2:$J$10,H1,今年!$G$2:$G$10,"<"&now())
範囲は適当
該当日付が無かったら0になるから必要なら好きにエラー処理して

635:名無しさん@そうだ選挙にいこう
19/09/11 19:22:33.90 .net
>>632
629です。指示書シートは同一ファイル内にあります。
今年シートのデータベースから探してこの商品が前回いつ作ったかを指示書シートのI列に表示する目的でした。

636:名無しさん@そうだ選挙にいこう
19/09/11 19:23:39.49 .net
返答ありがとうございます!やってみますね!

637:名無しさん@そうだ選挙にいこう
19/09/11 19:31:04.13 .net
エクセルのシートをスクロールしたら、途中からワードに変わっちゃうというのはどうでしょう?

638:名無しさん@そうだ選挙にいこう
19/09/11 19:34:54.90 .net
>>628
今日は調子いいから書いて上げる
Sub foo()
'前処理
Set 計算シート = Sheets("計算")
Set 累積シート = Sheets("累積")
With 計算シート.UsedRange
計算シートMaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
MaxCol = .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
End With
With 累積シート.UsedRange
累積シートMaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
MaxCol = .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
End With
'コピー
計算シート.Activate
Range("B1:CV" & 計算シートMaxRow).Copy
'貼り付け
累積シート.Activate
Range("B" & 累積シートMaxRow + 1).Select
Selection.PasteSpecial
End Sub

639:631
19/09/11 19:36:30.55 .net
>>634
自分が参考にしているエクセル関数の解説本(2007まで対応)に載ってなかったので調べたら
Excel2016からの新機能なんですね。まだ2010、2013を使ってる方も多いかと思うのでみなさんご注意を。
参考サイト URLリンク(dekiru.net)

640:名無しさん@そうだ選挙にいこう
19/09/11 19:42:15.42 .net
>>630 がそもそもテンプレ使ってないから
回答者が、最新版前提で回答しても仕方ない

641:名無しさん@そうだ選挙にいこう
19/09/11 19:48:10.27 .net
Excel2016も最新じゃないが

642:名無しさん@そうだ選挙にいこう
19/09/11 20:06:38.89 .net
めっちゃあれそうなんでこの辺にしませう


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1753日前に更新/209 KB
担当:undef