Excel総合相談所 136 ..
[2ch|▼Menu]
592:名無しさん@そうだ選挙にいこう
19/09/09 11:56:13.03 .net
>>591
プルダウンとかドロップダウンとか
といっても会社・・・というか人によって好きに呼んでたりする事も多いので、そこは臨機応変に。

593:名無しさん@そうだ選挙にいこう
19/09/09 12:25:05.30 .net
簿記とかいう無用の資格

594:名無しさん@そうだ選挙にいこう
19/09/09 12:45:41.02 .net
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
初心者です、ググっても見つからなかったので教えて下さい。
Excelで複数のパターンの数値を特定の数値にしたいのですが条件の分け方がわかりません。
具体的には、あるセルAの数字が
10以下の時→1.0
11以上15以下の時→0.8
16以上20以下の時→0.6
21以上25以下の時→0.4
26以上30以下の時→0.2
31以上の時→0.1
の6パターンについて、
右側の数値をセルBに表示させたいのですが、If関数の説明などでは2〜3パターンの条件分岐例ばかり出てきます。
このような指定は可能でしょうか?

595:名無しさん@そうだ選挙にいこう
19/09/09 12:53:44.42 .net
>>586
真っ当な会社なら
会計システムを導入してる
不正行為防止で誰が操作したのかの記録もする
経理でのexcelの用途なんて
会計システムでサポートしていない統計グラフを
作る事ぐらいか
ただの収支表ならどの会計システムでも作れるし

596:名無しさん@そうだ選挙にいこう
19/09/09 12:56:51.99 .net
>>594
エクセルの神髄  数値範囲で表検索するVLOOKUP近似一致
URLリンク(excel-ubara.com)
など見れば解決するかも。

597:名無しさん@そうだ選挙にいこう
19/09/09 14:49:40.30 .net
windows7
2013
いいえ

シート1のA1からA10に入力されている10個のデータを、シート2のB列に上から順番にコピーしたいです
ただ、コピー先はB1,B3,B10,B14....のように行番号が不規則なため、どうしようか悩んでおります
どうすればよいでしょうか

598:名無しさん@そうだ選挙にいこう
19/09/09 15:10:39.72 .net
>>596
ありがとうございます!
見てみます

599:名無しさん@そうだ選挙にいこう
19/09/09 15:12:33.45 .net
確かみてみろ

600:名無しさん@そうだ選挙にいこう
19/09/09 15:18:19.62 .net
>>594
こういうこと?
URLリンク(i.imgur.com)

601:名無しさん@そうだ選挙にいこう
19/09/09 17:01:58.63 .net
>>597
シート2
A1,A3,A10,A14.... ○
B1 =IF($A1="○",INDEX(Sheet1!$A$1:$A$10, COUNTIF($A$1:$A1,"○")),"")

602:名無しさん@そうだ選挙にいこう
19/09/09 18:04:06.43 .net
>>594
=IF(A1<=10,1.0,IF(A1<=15,0.8,IF(A1<=20,0.6,IF(A1<=25,0.4,IF(A1<=30,0.2,0.1)))))
をB1セルに入れる
要するに入れ子構造(ネスト)にする
最初のIF関数で10以下かどうか判断し、yesなら1.0
Noなら次のIF関数で15以下かどうか判断
以下繰り返し
ということ
11以上かどうかは10以下ではないという判断が済んでるから不要
A1に入るのが整数ならこれでOK

603:名無しさん@そうだ選挙にいこう
19/09/09 20:10:42.08 .net
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
"確認票"というシートと"集計表"というシートがあり
"確認票"はマクロ実行中に作るシートで、"集計表"はその"確認票"を参照した関数がたくさん入っているシートで、マクロ実行までは表示せず
マクロ実行の途中で表示させたいシートなのですが、"集計表"の各セルの値をVBAで書くのは大変なので、予め作っておきました。
しかし、"集計表"を作って"確認票"を削除してしまうと、"集計表"の関数もエラーになってしまいますので、"確認票"を削除しても記録しておく方法はないでしょうか?

604:名無しさん@そうだ選挙にいこう
19/09/09 20:22:27.91 .net
>>603
値貼り付け

605:602
19/09/09 20:36:58.35 .net
>>604
"確認票"はマクロ実行中にできるものなので、予め作った"集計表"はマクロ実行前は
計算前の関数だけ入ったシートです。

606:名無しさん@そうだ選挙にいこう
19/09/09 20:43:57.82 .net
>>605
計算したら確認票を削除するんだろう?だから消す前に値貼り付けすればいいんじゃないのか

607:名無しさん@そうだ選挙にいこう
19/09/09 21:06:48.43 .net
>>604
参照元が消えるのだから#REF!エラーが起こるのは当然かと
参照するのではなくて、集計表に値をコピペするしかない。
マクロ組めるならその作業を自動化すればええねん。

608:606
19/09/09 21:15:33.12 .net
安価ミス
>>603じゃんくて
>>602
>>604
この確認表というのはどういうの?
シートじゃなくてフォームで作るべきじゃね?

609:585
19/09/09 21:25:53.51 .net
返事くれた人達ありがとうございました。うちの経理はまだまだExcelをふんだんに使うみたいです。システムなどはまだまだだと思います。
あとExcelを自己研鑽にもしたいと考えています。事務職だとExcelから逃げる事は出来ないですよね?
自分の武器にしたいと思います。

610:名無しさん@そうだ選挙にいこう
19/09/09 21:26:03.47 .net
>>605
Excelでのフォームの作り方はググれば分かる。
単票フォームで「確認票」を作り直すのがオススメ
フォームで入力すれば集計表に値として保存される。

611:名無しさん@そうだ選挙にいこう
19/09/09 21:30:35.09 .net
>>609
フォームを作るにしても、レポートを作れる点でも
Accessの方が遙かに役に立ちます。
実際、自分はAccessでデータベース作って経理の仕事してましたし。
月間集計、年間集計も、予めレポートを設計しておけばフォーム上のボタンをポチッとするだけで
出力できます。

612:名無しさん@そうだ選挙にいこう
19/09/09 21:32:34.33 .net
>>611
社内で使うツールを個人で勝手に変えれないだろ…

613:名無しさん@そうだ選挙にいこう
19/09/09 21:40:31.50 .net
>>609
逆にExcelでないとなという用途は万年カレンダーだけですかね。

614:名無しさん@そうだ選挙にいこう
19/09/09 22:32:03.76 .net
>>603,605
マクロ実行中に作る”確認表”シートは、最終的に削除してしまう。・・・ここを変えたらどうですか?
”確認表”シートを通常は非表示にしておいて、必要な時に再表示するとか。マクロで制御したら
操作する人にはパッと現れ、パッと消えるように見える。
シート自体は消えないからエラーにもならない。

615:名無しさん@そうだ選挙にいこう
19/09/09 22:39:14.59 .net
集計後に参照元を削除するなら数式を残しておくこと自体無意味に思えるが…

616:名無しさん@そうだ選挙にいこう
19/09/09 22:55:43.53 .net
>>564
なるほど。
ありがとうございます。

617:名無しさん@そうだ選挙にいこう
19/09/10 08:02:43.54 .net
>>612
そういうならパッケージソフト入れるべき
Excelで経理うんぬんならAccessの方が楽という例
示しただけ

618:名無しさん@そうだ選挙にいこう
19/09/10 08:08:54.18 .net
>>605は参照と複写の違いを理解してないんだろな
クエリとテーブルを同一視するのと同じ

619:名無しさん@そうだ選挙にいこう
19/09/10 12:49:29.98 .net
>>603のいう確認票は集計表に保存したいデータを入力するためので、参照の意味を理解してないから
集計表に確認票のセルを参照する式を入れてる
実験としては興味深いが、それ以上に奇妙な作り
何でわざわざ確認票を毎回削除して生成してるのかは不明
ちなみにシートを削除した時点で
excelのシステムはそのシートにあったセルを参照する式に
#REF!を設定するするから、無意味なんだよね
何にせよかなり奇妙な事してる
もうレス無いから放置でええなと

620:名無しさん@そうだ選挙にいこう
19/09/10 14:52:58.79 .net
DF4とDU4の値のいずれか高い数値が1以下であれば
14行目〜15行目を削除
DF4とDU4の値のいずれか高い数値が2であれば何もしない
DF4とDU4の値のいずれか高い数値が3以上であれば、その値の回数を
14行目〜15行目をコピーして、16行目以降に2行づつ貼り付ける
というコードを教えてください<(_ _)>

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

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