X



Excel総合相談所 129
レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@そうだ選挙にいこう
垢版 |
2017/10/02(月) 18:58:15.04
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

▼━関連スレ━━━━━━━━━━━━

前スレ
Excel総合相談所 126(実質127)
https://find.2ch.net/search?q=excel

Excel VBA 質問スレ
https://find.2ch.net/search?q=excel+vba

【質問不可】Excel総合相談所スレの雑談・議論スレ
https://find.2ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80
0002名無しさん@そうだ選挙にいこう
垢版 |
2017/10/02(月) 18:58:49.11
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意。
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
  Excelの操作に関係ない部分は、スレ違いなのでこのスレでは回答が得られにくいです。
  ここで聞くよりもVBスレやAPIスレなどの該当スレで質問しましょう。
  但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
  ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチは嫌う人が多いのでなるべく避けましょう。マルチをすると、逆に回答は得られにくくなると思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
0005名無しさん@そうだ選挙にいこう
垢版 |
2017/10/03(火) 17:02:52.68
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
  
          
10/02 16:30 200 150
10/02 16;20 340 230
10/02 16:10 300 120
10/02 16:00 100 50
10/02 15:50 400 190

A列は日付、B列は時間、
C列は高い数値、D列は低い数値が降順に取得しています。

データは2行目から降順に10分締めの時間で所得しています。
一週間分あります。

10/02の16:30から16:00の高い数値の中で最も高い数値をC3
10/02の16:30から16:00の低い数値の中で最も低い数値をD3に
出したいです。

出来たら日付、指定した時間を入力したらその期間の高い数値、
低い数値が出るようにしたいです。

お願いします。
0006986
垢版 |
2017/10/03(火) 18:33:39.95
>>5
MAXIFS関数とMINIFS関数で簡単にできるよ。
サンプル作ったけどクラッシュしてデータ消えたし休憩時間終わった。調べてみ?
0008名無しさん@そうだ選挙にいこう
垢版 |
2017/10/04(水) 01:05:30.28
式を取得する自作関数(紹介されてたやつ)が2007でエラーになるんですが
回避方法ありますか?

function test(f as range)
 test = f.value
end function

とかいうのは動きましたが、
test = f.formula
だとエラーになります。
0009名無しさん@そうだ選挙にいこう
垢版 |
2017/10/04(水) 04:08:48.43
>>5
>10/02 16:30 200 150
>10/02 16;20 340 230
>10/02 16:10 300 120
>10/02 16:00 100 50
>10/02 15:50 400 190

>データは2行目から降順に10分締めの時間で所得しています。
>高い数値の中で最も高い数値をC3
>低い数値の中で最も低い数値をD3に出したいです。

ん?
2行目からデータが入ってるなら、
C3には340、D3には230が入ってるんじゃないの?
C1とD1や、他の列に計算式入れていいの?

あとデータは3行目からに出来たりしない?
(これは別に出来なくてもいいけど、もしコピペ貼り付けしたデータなら・・・程度)
0010986
垢版 |
2017/10/04(水) 05:38:31.50
>>8
渡したセルの数式や、エラーの内容を書くべきじゃないかな
0011986
垢版 |
2017/10/04(水) 05:52:06.42
>>7
これは失礼した。2013からだと思ってたわ。

>>5
指定した日づけ、時間ってのが指定した日時って意味なら日付と時間をまず足して作業列e列へ。

数式は3種類くらいあるけど、例えば配列数式を使う方式
{=max(if((e列が開始日時以上か)✱(e列が終了日時以下か),C列))}
0012名無しさん@そうだ選挙にいこう
垢版 |
2017/10/04(水) 12:07:08.79
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

A列に6桁の予算コード
BCD列に予算コードに伴う予算区分(前から2桁ずつがB,C,Dに割り当て)

同じようにF列に10桁の部署コード
GHI列に部署コードの区分(3桁,4桁,3桁が割り当て)

これを各該当コード部分と区分をアンダーバーで
つなげた値を表示したいと思ってます。
素人知識で作ったのは以下の感じ。


Dim yosan As String
Dim busho As String
Dim i As Long
Dim n As Long
n = Cells(Rows.Count, "A").End(xlUp).Row

For i = 3 To n
Cells(i, "A") = Format(Cells(i, "A"), "'000000")
yosan = Cells(i, "A")
Cells(i, "B").Value = Left(yosan, 2) & "_" & Cells(i, "B").Value
Cells(i, "C").Value = Mid(yosan, 3, 2) & "_" & Cells(i, "C").Value
Cells(i, "D").Value = Right(yosan, 2) & "_" & Cells(i, "D").Value
0013名無しさん@そうだ選挙にいこう
垢版 |
2017/10/04(水) 12:07:37.19
>>12の続き

Cells(i, "F") = Format(Cells(i, "F"), "'0000000000")
busho = Cells(i, "F")
Cells(i, "G").Value = Left(busho, 3) & "_" & Cells(i, "M").Value
Cells(i, "H").Value = Mid(busho, 4, 4) & "_" & Cells(i, "N").Value
Cells(i, "I").Value = Right(busho, 3) & "_" & Cells(i, "O").Value
If Cells(i, "O").Value = "000_" Then
'※最後3桁の区分がないときは空白処理
Cells(i, "O").Value = ""
End If
Next

約55,000行くらいあるデータで30秒ほどかかるんですが、
もうちょっと早くする方法はないでしょうか。
0015名無しさん@そうだ選挙にいこう
垢版 |
2017/10/04(水) 12:29:59.60
>>12
ワークシートを一括で配列に読み込んで、配列の中だけで文字列の処理して、最後にワークシートに一括コピーすれば2秒で終わるよ
0017986
垢版 |
2017/10/04(水) 13:16:41.77
>>16
14が言いたいのはつまり
Sub aaaa()

    '読み 必要なサイズのRangeをまるごとメモリに読み込み
    Dim Data As Variant
    Data = Range("A3:O1000").Value
    
    '処理 (Cells(行,列).valueに相当。但し列はABCではなく123で指定)
    Data(1, 1) = Data(1, 1) & "_" & Data(1, 2)
    
    '書き Data配列の大きさに合わせて値を出力
    'データのサイズ変更が無いと分かっている時はRange("A3:O1000").value=Dataとかでもいいが、こう書けば間違いない。
    Range("A3").Resize(UBound(Data, 1), UBound(Data, 2)).Value = Data

    '※数式があると消えるので、値しか無いようにすること
    
End Sub

あと今のコードのままでも前後にApplication.ScreenUpdating = False〜Application.ScreenUpdating = Trueしたらかなり改善するはず
0018名無しさん@そうだ選挙にいこう
垢版 |
2017/10/04(水) 14:36:45.12
>>10
セルの数式は単に参照してるだけです。
=test(i3)

エラーは忘れました。手元になくて。
0019986
垢版 |
2017/10/04(水) 16:03:02.93
>>18
数式のエラーなの?実行時エラーなの?
i3ってセルアドレスかな?I3のセルがどういう状態なのか。数式は何が入っているのか
シンプルなプログラムなので、使い方が間違っているとしかおもえない
0020名無しさん@そうだ選挙にいこう
垢版 |
2017/10/04(水) 18:33:24.66
使ってるExcelが最近やたらと考え中が続いてフリーズとかするのですが、
新しいファイルにそのままコピペすれば今まで通り使えるようになりますか?
0021986
垢版 |
2017/10/04(水) 19:04:56.11
>>20
エクセルが?ブックがの言い間違いかな。
改善する可能性はあるけど、原因を見つけたほうがいいと思う。
順番にデータや式を消していって大きく改善する場所を見つけよう
あと、外部ファイルリンクが無いかの確認と、高さゼロのシェイプが長年のコピペで増殖して、とてつもない量のラインが隠れてる事もある。適当なシェイプを描いて選択してCtrl+AしてDeleteだ。重症な場合は、「高さゼロのシェイプを消すマクロ」でググると出てくる
0022名無しさん@そうだ選挙にいこう
垢版 |
2017/10/04(水) 21:03:34.08
>>21
外部リンクでありがちなのは、名前の定義と条件付き書式だよな
他人が使っていたファイルを引き継いで使うと割りと無駄かつ外部リンクもとのファイルがない
名前や条件付き書式が大量にあることがある

明らかに生きてない外部リンクのある名前や条件付き書式削除するだけで
動作が大分軽くなるケースが多々あるので動作が重いときは、まずチェックだ
0023名無しさん@そうだ選挙にいこう
垢版 |
2017/10/04(水) 22:03:38.30
エクセルファイルを整理した。何年も同じファイルを使っているとワークシートも増えてきて、同じワークシートでも行が増えてくるとどこに何があるかわかりにくくなる。
そこで、とりあえずファイルのコピーを作り、あまり使わないワークシートは削除した。そのあいたところに同じワークシート内の別の項目をコピーした。
これまでは検索で別の項目へ移動していたが、これで検索しなくてもワークシートの切り替えで別の項目へ移動できるようになり、かなり便利になった。
0025名無しさん@そうだ選挙にいこう
垢版 |
2017/10/04(水) 22:52:36.61
てか糞みたいな他人の作ったワークシート使うの死ぬほど苦痛だわ
表の並びが整理されてないのを無理やり見やすくしようとあがいてべたべた色塗ってんじゃねえよ
まず四角くなってない表を整理してから配布してこい糞が
0027名無しさん@そうだ選挙にいこう
垢版 |
2017/10/05(木) 12:15:50.63
VBAで一個基本的なところを教えて欲しい
マクロ1でa1〜a5を配列aとして格納する
別のモジュールマクロ2をCALLで呼び出す
マクロ2で配列aを使いたい
マクロ2で別途配列aを定義して格納しなければならないもの?


それと、マクロ2で新たに作成した配列bをマクロ1で使いたい場合、どうやるのが普通?
0029名無しさん@そうだ選挙にいこう
垢版 |
2017/10/05(木) 14:32:03.25
>>28宣言という言葉の意味がよくわかってないけど、
dim a(1 to 100) as variant
って定義している
やっぱりマクロが終了したら別マクロで共有することはできない??
一旦セルに書き込んで、別のマクロに戻った際は、そのセルから値を拾うって考え方か
003112
垢版 |
2017/10/05(木) 18:19:21.65
>>17のアドバイスをもとに以下の感じで作ってみました。
結果は5,6秒で完了するように!
だいぶ早くなったので助かりました。
ただUBoundがいまいちよくわかってません。
ワークシートの表では1列の情報が1次元、1行の情報が2次元の配列ということ?

Dim i As Long
Dim Data As Variant
Data = Range(Cells(3, 1), Cells(Rows.Count, 8).End(xlUp)).Value

For i = 1 To UBound(Data, 1)

Data(i, 1) = Format(Data(i, 1), "000000")
Data(i, 2) = Left(Data(i, 1), 2) & "_" & Data(i, 2)
Data(i, 3) = Mid(Data(i, 1), 3, 2) & "_" & Data(i, 3)
Data(i, 4) = Right(Data(i, 1), 2) & "_" & Data(i, 4)

Data(i, 5) = Format(Data(i, 5), "0000000000")
Data(i, 6) = Left(Data(i, 5), 3) & "_" & Data(i, 6)
Data(i, 7) = Mid(Data(i, 5), 4, 4) & "_" & Data(i, 7)
Data(i, 8) = Right(Data(i, 5), 3) & "_" & Data(i, 8)
If Data(i, 8) = "000_" Then '※8列目の区分がないときは空白処理
Data(i, 8) = ""
End If

Next

Range("A3").Resize(UBound(Data, 1), UBound(Data, 2)).Value = Data
0032986
垢版 |
2017/10/05(木) 18:27:19.78
>>31
uboundは配列の要素の最大値を返す関数。
,1なら一次元目(cells.valueで取り込んだ場合は行数に相当)
,2なら二次元目(列数に相当)
つまりCellsと同じ!
ウォッチウィンドウの使い方を覚えると良いよ。デバッグしながら変数の中身が見れるので色々理解できると思う
0033名無しさん@そうだ選挙にいこう
垢版 |
2017/10/05(木) 18:55:49.87
>>31
たった55000件で5秒はかかりすぎだなあ
配列をVariantからString型に変更して、ワークシートから読み込む部分をValueからTextに変えて
最後にワークシートに書き戻す時Screenupdating = False以下略で画面更新と再計算を切ってみ
0035名無しさん@そうだ選挙にいこう
垢版 |
2017/10/05(木) 22:07:45.56
いろいろ便利な機能があるが、なぜかセルをクリックすると指定したセルへ飛ぶ機能がない。何万行もあるわけだから、これがないとかなり不便。
ここで重要なのは絶対アドレスではなく、相対アドレスへ飛ぶようにすること。なぜかというと何度も行挿入や桁挿入を繰り返していると絶対アドレスへ飛んでも意味がない。
ジャンプ機能も絶対アドレスのようだし、しかもワンクリックではない。検索なら名前を工夫すれば的確に飛べるが、これもワンクリックではない。
0039名無しさん@そうだ選挙にいこう
垢版 |
2017/10/05(木) 22:51:41.69
光ケーブルがあればどこへでもいける

指定したセル てのに名前を付けとけば>>36 の言うハイパーリンクで飛べる
セルのみならず、オブジェクトに名前付けても飛ぶ なんならシート越えて飛ぶ
それを応用して最左端シートにメニューを羅列し、メニューに添った内容の
各シートを行き来するようなシロモノはごまんと見てきた 概ね好評
0041986
垢版 |
2017/10/05(木) 23:38:47.05
>>35
onkeyでカレントセルから移動するだけのショートカットキー登録すればいいじゃん
0042名無しさん@そうだ選挙にいこう
垢版 |
2017/10/05(木) 23:49:36.53
>>19
どうも
「=」を取り除くために mid を使ってて
長さを省略したのがエラーの原因だったようです。
いろいろなエラーでなかなか動かなかったんで相談してみましたが
不正確な投稿でおさわがせしました。
0043名無しさん@そうだ選挙にいこう
垢版 |
2017/10/06(金) 02:10:35.55
>>31
マクロの最初に

Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

マクロの終わりに

Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

を入れてみ
多少だけど速くなるかも
0044名無しさん@そうだ選挙にいこう
垢版 |
2017/10/06(金) 06:42:47.10
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

24時間体制で5分おきにデータを降順に取得しています。
a列に5分おきの時間、b列にその時のデータが表示しています。
見ずらいので15,30,45,00分ごとの時間が来たら
取得したデータのセル(b列)に色を付けたいのですが、可能ですか?
0045名無しさん@そうだ選挙にいこう
垢版 |
2017/10/06(金) 07:30:50.71
7:00 200 7:00 200
6:59 132 6:55 132
6:58 132 6:50 233
6:57 132 6:45 199
6:56 132 6:40 102
6:55 132 6:35 281
6:54 233
6:53 233
6:52 233
6:51 233
6:50 233
6:49 199
6:48 199

もう一つ、
a列に1分毎の時間、c列に5分毎の時間、
d列に5分毎に取得したデータが入っています。
b列にa列の時間がc列の5分以内と一致したらd列から抽出できるように
したいです。
0046986
垢版 |
2017/10/06(金) 12:24:35.64
>>44
条件付き書式で出来るかな
その中の数式でminute関数で分取り出して、mod関数で5で割り切れるときに書式設定するように設定すれば良い
0047986
垢版 |
2017/10/06(金) 12:30:12.14
>>45
vlookup関数、またはindex関数とmatch関数でできる。
004812
垢版 |
2017/10/06(金) 12:47:41.75
>>43
そのおまじないはもう既にいれてるんすよね

あと>>33variantをstringにというのは型指定変えるだけじゃだめなんですかね?
0049986
垢版 |
2017/10/06(金) 13:02:30.34
>>31
最初のレンジ指定が重いはず
いっその事全部メモリに読み込めば?
0051名無しさん@そうだ選挙にいこう
垢版 |
2017/10/06(金) 17:02:23.12
>>47
返答ありがとうございました。
VLOOKUPで試していますが
時間の例えば15分から29分抽出方法が分からないです。
できればよろしくお願いします。
0052名無しさん@そうだ選挙にいこう
垢版 |
2017/10/06(金) 17:15:58.93
Windows10+Excel2016+マクロありブックで次のようなトラブルを体験しました。
同じような体験した方いらっしゃいますか?

Windows7+Excel2010で開発したブック。一人1シート(20前後+αのシート)で普段は各人の
シートを非表示、マクロによってシートを表示する際に人によっては不要な行を非表示とする処理を
入れていた。Windows7+Excel2010(2013)までは異常なく実行できていた。

ところが、Windows10+Excel2016の環境で利用しはじめたところ、行の非表示処理でエラーとなった。
マクロではなく、手作業で非表示の操作を行おうとすると
「オブジェクトがシートからはみだします。その操作はできません。」と表示された。
オブジェクトがシートの最下行にあると行の非表示ができないらしいが、当該シートには図形は入れてない。
オブジェクトの名前を表示する簡単なマクロで調べたところ、コメントと判明。
コメントの編集をしようとしたところ、コメントの枠がシートの最下行まで移動していたことが判明。
各人のシートからすべてのコメントを削除してようやくマクロが支障なく動くようになったというもの。

Excel2010だと、コメントの書式設定画面では枠のサイズは変更できるけど、位置を指定する項目はない。
どうやったらいいんだろう?
0054名無しさん@そうだ選挙にいこう
垢版 |
2017/10/06(金) 19:01:02.26
ある値xを、複数のマクロで利用するんだけど
各マクロで毎回計算させるのと、ある値xを計算するだけのマクロを作って、それをCALLするのと、どちらがおすすめ?
005552
垢版 |
2017/10/06(金) 19:19:28.68
>>53
早々のアドバイスありがとうございます。常時表示のときのもののようなので、
これを実行した後にコメントを非表示にするという処理が有効かどうか、試してみたいと思います。
0058名無しさん@そうだ選挙にいこう
垢版 |
2017/10/06(金) 19:48:14.94
>>45
0059名無しさん@そうだ選挙にいこう
垢版 |
2017/10/06(金) 19:52:58.17
>>45
5分以内に合致する場合はっていうけど
合致するものが二つある場合はどっちを採用するの?
6:59だとすると、7;00と6:55が該当ぽいんだが
0060名無しさん@そうだ選挙にいこう
垢版 |
2017/10/06(金) 20:00:25.60
>>59
ご返信ありがとうございます。
6:59だと6:55に属します。
7:00になると7:00から7:04まで7:00の数値に属します。
わかりにくい文章ですみませんでした。
0063名無しさん@そうだ選挙にいこう
垢版 |
2017/10/07(土) 06:51:51.23
>>62
functionを分けるってのはどういう意味?
例えば、
1)直角三角形の直交二辺の値をシートから読み取るマクロ
2)斜辺の長さを求めるマクロ
3)三角形の面積を求めるマクロ
4)三角形の周長を求めるマクロ
ってあるときに、
2)と3)と4)は1)の値を必要とするから、1)の値をグローバル変数にすると、一度格納すれば、手間が減って良いですね、というような使い方だと理解している。


ただ、
4)には2)の結果も利用することができて、だから2)の値もグローバル変数にするのか
そんな感じでポンポングローバル変数を作る考え方で合ってるのか?って気はしている
1)〜4)を1つのマクロで書いちゃったって良いもんね。
ただ長くなるけど。

要するに各プログラムは短く、プログラムの数は細切れにして増やすような運用の仕方が普通の考え方で良いのか?ということがわからない
確かに、クソ長いプログラムを読むのは嫌になるし、細切れにされたプログラムならまだ読む気になるのかもしれない。
あとエラーチェックがしやすいかもしれない。
わからないけど。
0065名無しさん@そうだ選挙にいこう
垢版 |
2017/10/07(土) 08:44:48.14
>>63
横からだけど下記を新しい標準モジュールにコピペし実行してみると判ると思う

Dim 半径 As Single

Private Sub 円周()
半径 = 5
MsgBox "円周は" & 半径 * 2 * 3.14
End Sub

Private Sub 円の面積()
MsgBox "面積は" & 半径 * 半径 * 3.14
End Sub

Sub 結果()
円周
円の面積
End Sub
0066名無しさん@そうだ選挙にいこう
垢版 |
2017/10/07(土) 22:29:43.42
最近急に出た現象なんだけど
win10でExcel2016で、パスワード付きファイルを開くとウィンドウズが二つ開くようになった。

例えば前までは、ブックが一つ開いてパスワードを入力する小窓があって、パスを入力するとブックは一つしか開いてなかった。

今は、パスワード付きのファイルと、なぜかまっさらなファイルがもう一つ開く・・・
本ファイルを閉じても、そのまっさらなファイルは閉じないからメンドクサイ。
同じ症状の人いますか?解決方法あるのかな
0067名無し
垢版 |
2017/10/08(日) 01:20:07.68
>>66
沢山たまに見かけるような
再インストールしたらなおるかも?
0068名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 01:58:54.66
パブリック変数なんか滅多に使わないだろ
どうしてもパブリック変数が必要なシステム組むようならそれなりに腕があるわな
初心者レベルならプライベート変数だけにしとけ

>>54
Public Const WEEK_DAYCOUNT as Long=7

Public Sub PrintWeekCount

End Sub
0069名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 02:13:59.53
>>54
ある値xを何度も計算する必要があるなら、計算専用のFunctionプロシージャを用意するのが正解
何万回もループして計算するようなのでない限り、今のPCの性能なら毎回計算させても何の問題もないし、
計算パターン変更する時は専用プロシージャを書き換えるだけで済む

それから、よく使うのはパブリック定数、ただし使い方によっては Private Const... とモジュールレベル定数
パブリック変数なんかまず滅多なことじゃ使わん、てか初心者ほど絶対使うな
モジュールレベル変数に手を出すのはユーザーフォームに戻り値持たせたり、クラス自作したり、そこまで行ってから

Public Const WEEK_DAYCOUNT as Long=7

Public Sub PrintWeekAndDay

(日数dと週wを入力)

Debug.Print WeekCount(d)
Debug.Print DayCount(w)

End Sub

Private Function WeekCount(d as long) As Long
' 日数dを週に換算
WeekCount=Int(d/WEEK_DAYCOUNT)
End Function

Private Function DayCount(w as long) As Long
' 週wを日に換算
DayCount=w*WEEK_DAYCOUNT
End Function
0070名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 02:20:39.75
スコープの話なのに変数の宣言抜けてたわすまん

Public Const WEEK_DAYCOUNT as Long=7

Public Sub PrintWeekAndDay

  Dim d As Long, w As Long

  (日数dと週wを入力)

  Debug.Print WeekCount(d)
  Debug.Print DayCount(w)

End Sub

Private Function WeekCount(d as long) As Long
' 日数dを週に換算
  WeekCount=Int(d/WEEK_DAYCOUNT)
End Function

Private Function DayCount(w as long) As Long
' 週wを日に換算
  DayCount=w*WEEK_DAYCOUNT
End Function
0071名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 02:21:25.13
同じ変数値を別々の手続きで何度も使うなら引数を増やせ

同じ計算を何度もするのは最悪の実装
別の要因で同じ結果になるとは限らないケースでバグの元になる
0072名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 07:46:03.26
>>63

>要するに各プログラムは短く、プログラムの数は細切れにして増やすような運用の仕方が普通の考え方で良いのか?
そういうこと
使い回ししやすいように作る
007363
垢版 |
2017/10/08(日) 09:45:40.90
63だけど何も取りかかれていない申し訳ない
さらっと読んだけど理解できないことが多い状況
理解できそうなところだけ消化します
007470
垢版 |
2017/10/08(日) 10:10:13.89
>>71
初心者には引数って何ぞ?ってのが最初の壁だろうな
記録マクロじゃプロシージャの引数は絶対に出てこないから
0075名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 11:24:35.84
でも引数増やし過ぎたらそれはそれでわけわからんようになるからな
classがもっと手軽に使えればいいんだけど
っておもったけどvbaでそこまでするか?
0076名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 11:30:23.30
>>63
それぐらいならグローバル変数は使わないほうが良い

Sub foo()
'読み込む
縦 = Cells(1, 1)
横 = Cells(1, 2)
'各数値計算
Debug.Print 斜め(縦, 横)
Debug.Print 面積(縦, 横)
Debug.Print 周長(縦, 横)

End Sub
Function 斜め(縦, 横)
斜め = Sqr(縦 ^ 2 + 横 ^ 2)
End Function
Function 面積(縦, 横)
面積 = 縦 * 横 / 2
End Function
Function 周長(縦, 横)
周長 = 縦 + 横 + 斜め(縦, 横)
End Function
0077名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 13:08:04.28
>>75
もちろん構造体やプロパティを使う方がいいけど、
引数が多すぎるのはとくに初心者はモジュール化の方針に問題があることのが多い
正解がないに等しいから経験を積むしかないし
0078名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 13:21:11.27
classにすればいいんだけど、そうすると更に難易度上がるからな
引数いっぱいでいいと思う
どうせ対して保守やらなんやらしないだろ。
vbaのいいとこだけつまみぐいしてればいい
0081名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 14:47:43.17
>>67
よくある事例なんですね。
やっぱり再インストールしかないんですかね・・・
1年前にオプションで設定とか色々いじってて、どこを設定しとか忘れてるので出来れば再インストールしたくないんですよねえ・・・
0083名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 15:33:04.23
>>81
逆に考える
なるべく設定は触らずに使うようにするんだよ
俺もやってきたしお前のおかんも経験済みだ

PC設定はgoogleIMEとchrome、拡張子の表示ぐらい
エクセルに至っては数式バー少し伸ばすぐらい
0084名無し
垢版 |
2017/10/08(日) 17:34:14.90
>>81
オプションスクショ取っておくだけで、設定の復元なんて数分でできるじゃん
リボンはエクスポートできるし。
0085名無し
垢版 |
2017/10/08(日) 17:36:48.15
>>80
どっかのブログでなぜかとても不安定なcomを使う方法ばかり流通してるせいで嫌う人多いけど、ちゃんと安定したエクセルの読み方あるって書いてあったよ
実際使ってるけど全く問題ない
0087名無しさん@そうだ選挙にいこう
垢版 |
2017/10/08(日) 19:54:11.58
再インストールしましたが、>>66の症状は治りませんでした・・・
適当に他のExcelファイルを開いてて、パスワード付きファイルを開くと二重に開かないんですけど
単独で開こうとすると二重で開く・・・
なんでだあ
0090名無し
垢版 |
2017/10/09(月) 01:18:55.02
>>87
関連付け関係だと思うんだけどねー
Office系は設定が複雑化しててマニュアル修正しずらいから嫌い。
コンパネの既定のプログラムで治る可能性もあるけど多分無理。悪化する可能性もある。
一番安全なのはOSごと‥
0093名無しさん@そうだ選挙にいこう
垢版 |
2017/10/11(水) 10:05:35.88
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

現在、条件付き書式で、期日が2週間以内になったら
セルの色が変わるようにしています。

=TODAY()+14>A1

しかし、上記の書式では期日が過ぎてもセルの色が変わったままです。
期日が過ぎたらセルの色が変わらないようにするには、どのように
書けばいいのでしょうか。宜しくお願いします。
0095名無しさん@そうだ選挙にいこう
垢版 |
2017/10/11(水) 13:13:19.17
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
名前に付いてなんですが、
例えばA4:Z99を4000回INDEX〜MATCH等で参照するとして
MATCHに全部A4:Z99と書くのと、A4:Z99に2〜3文字程度の名前をつけて
名前で参照するのでは、どちらが軽快でしょうか?

MATCH(150,A4:Z99,1)
MATCH(150,原価A,1)  [A4:Z99に"原価A"という名前を定義]
こんなかんじですが、上と下、どちらが軽快ですか?
0098名無しさん@そうだ選挙にいこう
垢版 |
2017/10/11(水) 20:55:48.65
表計算使い始めて分からないことがあるので質問させてください。

A1 B1 C1のセルがあって、
B1の背景に色がついたら、B1の数値をA1に表示。
C1の背景に色がついたら、C1の数値をA1に表示。
どちらも色がついた場合は特に何も無し。

とするには、どのような式を入力すればいいでしょうか?
お願いします。
0099名無しさん@そうだ選挙にいこう
垢版 |
2017/10/11(水) 21:05:27.33
>>98
色がついたら、ということは基本的にできない
b2に1を入力することで分岐させる
A1=if(B2=1,b1,"")
B1の条件付き書式はB2が1なら〜で設定する
0100sage
垢版 |
2017/10/11(水) 22:54:37.09
すいません、質問させてくだい。

エクセルのファイルを画面上に2つ以上見えているとします。

そこで、ショートカットキーを使ってファイル間をアクティブセルを移動させることは出来ませんか?

Ctrl +TABではセルは移動しますが、ほかのエクセルファイルは最小化されてしまいます。画面上のエクセルファイルは見えたままにしておきたいです。

わかる方お願いいたします。
0104名無しさん@そうだ選挙にいこう
垢版 |
2017/10/12(木) 00:36:03.88
VBAを使って、計算結果を記入
→そこを読み取ってグラフが作成され?
→それをコピぺして別シートへ貼り付け

このときグラフを一緒にコピペしてかつ、等間隔に縦横とならべたいんですが、そんなこと可能ですか?
0106名無しさん@そうだ選挙にいこう
垢版 |
2017/10/12(木) 13:18:41.47
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

基本的なことですが、オートシェイプの標準?フォントの設定の仕方を教えてください

(1) オートシェイプで四角形を貼り付ける
(2) 右クリックしてテキストの編集を選択
(3) オートシェイプの縁を選択してフォントとサイズを設定
(4) シェイプに文字列を書き込む
(5) (4)で書いた文字の一部をコピーして同じシェイプ内にペースト
(6) 【ここが問題】なぜか別のフォント、サイズで貼り付けられる
⇒オートシェイプの標準のテーマ? というのがある模様
0107名無しさん@そうだ選挙にいこう
垢版 |
2017/10/13(金) 15:20:38.75
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
いくつかの数値を中央値から飛び出してる値が一番少なく均すような計算をしたいのですが
どのような関数が使えるでしょうか
0108107
垢版 |
2017/10/13(金) 15:30:01.25
中央値と平均値の差分を出しても均すようにはならないですし

各数値の最大の絶対値と中央値?平均値?の差分が最小になるように計算すればいいのでしょうか?
0109名無しさん@そうだ選挙にいこう
垢版 |
2017/10/13(金) 15:33:58.46
それとも偏差が最小になるように計算すればよいでしょうか
数学が全然わからず混乱しています
0110名無しさん@そうだ選挙にいこう
垢版 |
2017/10/13(金) 15:36:36.51
異常値を除いた平均ならTRIMMEAN関数ってのがあるよ
自分でコマ膜調整したいなら、2016ならAVERAGEIFSってのがあるけど2013は知らん
0111名無しさん@そうだ選挙にいこう
垢版 |
2017/10/13(金) 19:24:29.85
AVERAGEIFなら、2013にもあるが……
AVERAGEの配列数式にした方が上下双方の異常値を取り除くならやりやすいかもね
0112名無しさん@そうだ選挙にいこう
垢版 |
2017/10/14(土) 11:51:19.98
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
マクロに関して質問させて頂きます、初めてなので不都合があったらすみません
シート1で差が2以上ある自然数を2つ入力し、シート2にその2つの自然数の間の数を補完してコピペする事は可能ですか?
0116112
垢版 |
2017/10/14(土) 13:08:11.23
>>115
シート1に入力する自然数は手動で入力です
その自然数と補完した間の数をシート2に入力したいです
0118115
垢版 |
2017/10/14(土) 14:36:44.51
例をあげると分かりやすい。
A1に5、A2に10 を入れると、
別シートのA1に5、A2に6、、、10で終わるってこと?
0119112
垢版 |
2017/10/14(土) 15:33:39.19
>>117
>>118
何度もすみません、例を挙げます
シート1のA1に3、B1に6と入力すると、シート2のA1を開始点としてA1に3、A2に4、A3に5、A4に6と入力されるようにしたいです
0120名無しさん@そうだ選挙にいこう
垢版 |
2017/10/14(土) 15:43:20.54
>>119
標準モジュールに書くこと

Sub foo()

Set 転記元シート = Sheets("sheet1")
Set 転記先シート = Sheets("sheet2")

開始 = 転記元シート.Cells(1, 1)
終了 = 転記元シート.Cells(1, 2)

転記先行数 = 1
For i = 開始 To 終了
転記先シート.Cells(転記先行数, 1) = i
転記先行数 = 転記先行数 + 1
Next

End Sub
0121112
垢版 |
2017/10/14(土) 15:58:51.96
>>120
回答ありがとうございます
調べながら入れてみます
0122112
垢版 |
2017/10/14(土) 16:07:57.27
もう一つお願いします
転記先シートの開始点のみ指定し、終了を指定せずに>>119の動作を行いたいです
0125名無しさん@そうだ選挙にいこう
垢版 |
2017/10/14(土) 21:39:16.30
>>106 ってどなたかわかる方いらっしゃいませんか?
0126112
垢版 |
2017/10/14(土) 21:53:26.60
>>124
そのようですね、すみません…
無事動きました、ありがとうございました
0130名無しさん@そうだ選挙にいこう
垢版 |
2017/10/15(日) 01:04:37.24
>>127
ありがとうございます
それだと貼り付け1回分しか変わりません
毎回やらなくても良いようにしたいのです
0131名無しさん@そうだ選挙にいこう
垢版 |
2017/10/15(日) 01:29:21.69
コマンドボタンでも一つ置いといて、そのSheetを開いた時に
そのコマンドボタンにフォーカスを移すように仕組んどけば
Enter一発でマクロ起動は可能
でなければ、セル入力や変換確定のたんびにマクロが走ってしまう
0132名無しさん@そうだ選挙にいこう
垢版 |
2017/10/15(日) 08:32:38.59
>>128
iOSがプログラミングで機能を増やすってことをコンセプトからはずしているんだから仕方がない

アプリはOSが予定する気がない機能を使うには多大な労力が必要だから切り捨てるのもやむを得ない
0133名無し
垢版 |
2017/10/15(日) 09:32:27.69
>>129
Enterじゃなくてもいいならonkeyで割り当てるとか、Enter以外にも反応してしまうが、selection changeイベント使うとか方法はあるかな

>>131
成る程、その手があったか。面白い。
0134112
垢版 |
2017/10/15(日) 11:23:23.21
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

また少し教えて下さい、前回の延長の質問です
シート1で入力した単語と同じ行のセル2つに数字をそれぞれ入力し、シート2の列Aにシート1のセル2つの数字間を補完し、列Bに補完した数字のぶんだけ文字列をコピペするマクロを作りたいです

分かり辛いと思うので例を貼ります
↓のようにしたいです
https://i.imgur.com/vvGyzLS.jpg
0136112
垢版 |
2017/10/15(日) 11:42:34.98
>>135
これが最終型になります
0140139
垢版 |
2017/10/15(日) 22:44:41.58
あと1、5、6、10と入ってるけど、
常に、C3=D2+1なの?
0141112
垢版 |
2017/10/15(日) 23:53:11.79
>>139
罫線はあらかじめ用意してあります、データのクリアはしません
分かりにくい例で申し訳ないです…
画像の状態ならB2に「ああああ」、C2,D2で1,5と入力するとF2〜F6に1〜5、G2〜G6に「ああああ」と入力されるものを作りたいです
>>140
そうです
0142139
垢版 |
2017/10/16(月) 10:23:57.92
あと文字列、数1、数2がそれぞれ2つ入ってるけど、もっとたくさん入る場合もあるんですよね?
0144139
垢版 |
2017/10/16(月) 15:12:16.26
>>143
ttps://i.imgur.com/1MWrja9.jpg
ただし、一番最初の数値が1以外で始まるとダメ。
0145名無しさん@そうだ選挙にいこう
垢版 |
2017/10/16(月) 15:15:36.12
Excel2016でファイルを開くと勝手にフォントが変わってしまいます(取り消し線や下線の設定なども消える)
その後、修正して保存しても、開くとまた元に戻ってしまいます

今のところ、対策としては一つしかなく、別のExcelファイル(内容が空のファイルでも良い)を開いた状態で該当のファイルを開く
あるいは、同じExcelファイルの別のシートを最初に開くように保存して、開いたあとに該当のシートを見ると保存した時の状態で開けます
要するに、いきなりそのファイルのそのシートを開くとバグるようです

なんらかの設定によるものなのかと思っていろいろいじりましたが、今のところは上記の方法でしか対策できません
解決策をご存知の方はおられますか?
0146112
垢版 |
2017/10/16(月) 15:39:38.20
>>144
ありがとうございます
一番最初の数字というのは>>134の場合だとC2と言う事ですよね
0147名無しさん@そうだ選挙にいこう
垢版 |
2017/10/16(月) 15:55:11.85
>【1 OSの種類         .】 Windows8.1
>【2 Excelのバージョン   】 Excel2013
>【3 VBAが使えるか    .】 いいえ
>【4VBAでの回答の可否】 可

図のような二曲線間の垂直の距離xを求めたいのですが何か方法はありませんか?
実際に用いるデータは無数に点があるので
系列間の点と点の距離を求める形になると思います
https://i.imgur.com/psdeP7P.jpg
0149名無しさん@そうだ選挙にいこう
垢版 |
2017/10/16(月) 22:23:19.38
IF(($R$8>=Y7)*AND($T$8<=AA7),$T$8-$R$8,0)+…

貰ったエクセルの関数なんですが*の意味って何ですか?
0151名無しさん@そうだ選挙にいこう
垢版 |
2017/10/16(月) 22:29:00.61
論理演算の論理積
AかつB、つまりand(A,B)と同じ意味になる

あと、その式の
AND($T$8<=AA7)
のANDは意味がない
($T$8<=AA7)
となる
で、
($R$8>=Y7)*($T$8<=AA7)

and(($R$8>=Y7),($T$8<=AA7))
と同じ
(AND各場所間違えてるっぽい)
0154名無しさん@そうだ選挙にいこう
垢版 |
2017/10/16(月) 23:22:37.16
結果が正しいかどうかはなんとも言えないけど、Excelの関数や論理式のことがよくわかってなくて試行錯誤した結果なんだろうなとは想像がつく
0155144
垢版 |
2017/10/17(火) 00:30:26.33
>>146
そうですね、C2ですね。
そこに1以外の数値がくるなら、コードの下から3行目、4行目のj+1のところを少し変える必要がある。
0161名無しさん@そうだ選挙にいこう
垢版 |
2017/10/17(火) 07:54:55.88
ちゃんと考えたことがなかったけど、ワークシート+数式は言語かなあ
セルは変数とみなせるし、複数のセルに数式を並べれば、順次処理や条件分岐っぽいこともできそうな気がする
0163112
垢版 |
2017/10/17(火) 10:18:11.73
>>155
ありがとうございました
0164名無しさん@そうだ選挙にいこう
垢版 |
2017/10/18(水) 00:53:49.30
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


シート1のA1にデータを入力

シート2に同じデータがあるかどうか検索する

あった場合はシート1のA2に○
無ければ&#9747;を出力する

シート1に入力する時にvlookupを使うと完全一致の場合でしか検索できず、長い名前の物があると入力が大変(例えば、検索したい名前が「Ase kaki man ase ase」の場合全てを入力しないと&#9747;が出力されてしまう)

そこで、検索したい名前の一部を入力すると候補が出てくるようにしたい(例えば、上記の例で言うと、検索で「Ase kaki」と検索したら最後まで自動的に入力されたことになる。もしくは、それに類似したものが複数あるなら候補を表示する)

イメージとしては記載したとおりですが、もっと良い方法があれば教えて下さい
0167名無しさん@そうだ選挙にいこう
垢版 |
2017/10/18(水) 10:37:14.49
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel10
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

フォルダの中に連番のファイル名のCSVファイルを入れてます。
エクセルのセルに、そのリスト名を並べて表示してます。
ファイル名はこんな感じです。(地名+時刻+aかb)
横向きに書いてますが上から順番に並んでいます。
福岡09時30分A.CSV 福岡12時A55分A.CSV 福岡15時30分A.CSV
福岡09時30分b.CSV 福岡12時A55分b.CSV 福岡15時30分b.CSV
東京09時30分A.CSV 東京12時A55分A.CSV 東京15時30分A.CSV
東京09時30分b.CSV 東京12時A55分b.CSV 東京15時30分b.CSV
これをファイル名の同じ地名ファイルで同じ時刻で上から順番に並べるようなマクロを教えてください (行節約するため横向きに書いてます)
福岡09時30分A.CSV 福岡09時30分b.CSV
東京09時30分A.CSV 東京09時30分b.CSV 
福岡12時A55分A.CSV 福岡12時A55分b.CSV
東京12時A55分A.CSV 東京12時A55分b.CSV
福岡15時30分A.CSV 福岡15時30分b.CSV
東京12時A55分b.CSV 東京15時30分b.CSV
0170名無しさん@そうだ選挙にいこう
垢版 |
2017/10/18(水) 12:46:15.49
候補を出すんだと、文字ごとに絞ったリスト作ってデータの入力規則のリスト使うのが俺は好み

作業列でその項目がCOUNTIFで指定セル内にあるか調べて、ROW()で行数の掛け算をする
そして、作業列の数字を大きい順にリストにして、範囲を名前で定義して、データの入力規則使う

作業列の計算式を工夫すれば、アルファベット順に並び替えとかも可能
0171名無しさん@そうだ選挙にいこう
垢版 |
2017/10/18(水) 13:19:56.08
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

初心な質問かもしれませんが宜しくお願いします。

16年実績・17年実績のそれぞれのシートにはa月・b商品名・c個数・d実績が記入してあります。

[例]
a b c d
1.3月 りんご 5 500
2.3月 みかん 5 500
3.4月 ばなな 3 300
4.5月 いちご 4 400

16年と17年の商品毎の同月までの進捗を別シートに出したいのですが、
sumifで集計すると16年には去年の年間の実績を入力しているので16年は年間で、17年は10月までとなります。
進捗を出すシートに例えば「10月」など入力したら、16年・17年の10月までの進捗が出るように出来ませんか?

自分が、16年の実績を出したい月までで貼り付けていけばいいのでしょうが、もし方法あるなら教えて頂ければと思います。
0173名無しさん@そうだ選挙にいこう
垢版 |
2017/10/18(水) 17:49:47.13
>>171
実際の表での月の表示はどうなっているのかな?
それによっては、シリアル値にしてしまった方が簡単にできるし
シリアル値にしないならしないでやりようはあるし
0174171
垢版 |
2017/10/18(水) 18:19:01.46
>>173
レスありがとうございます。
月の表示は「10」と入力で両方から反映できるように数字が入れてあります。
元々は「17-10」・「16-10」のような「年ー月」だったのをデータ分割して末尾の10だけにしたので戻す事もできます。

書き込んだ後、自分なりに調べてsumif の条件を≧10とかでならないのか?とも思っていますが
その場合、3月〜2月で拾いたいのが、数字のみなので1〜10で拾ってしまうのでは?「16-10」のように「年ー月」の表示に戻した方が拾えるのかな?とも考えています
0175名無しさん@そうだ選挙にいこう
垢版 |
2017/10/18(水) 20:09:35.17
>>174
恐らくわかっていると思うけど条件的にSUMIFじゃ全然足りないから
SUMIFSを使うことになる

便宜上同じシートでやってしまうとして

A列を年B列を月、C列を商品名、D列を個数、E列を実績

G1に開始月、H1に終了月
J2〜実績のための商品名
K1をA列にある2016年、L1をA列にある2017年とした場合

K2=SUMIFS($E:$E,$B:$B,">="&$G$1,$B:$B,"<="&$H$1,$C:$C,$J2,$A:$A,K$1)
で実績が出せるかなって感じに設定してみた後は、L列や下方向にオートフィルをすれば
希望に近いものができるかな、と。
0177名無しさん@そうだ選挙にいこう
垢版 |
2017/10/18(水) 20:56:09.81
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

質問です

例えばA1のセルの色が赤ならば
自動でB1のセルに1と入力するにはどうすればよいでしょうか?
0179名無しさん@そうだ選挙にいこう
垢版 |
2017/10/18(水) 21:49:21.04
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016(365)
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

例えばA1に4月と入力して、オートフィルでA8までドラッグする。
ここでマウスをプッシュしたままだと、11月って出ますっけ?
ここでドラッグをやめたら、11月までオートフィルで入力されますよ、と分かるように。
どこかに設定があります?
0181179
垢版 |
2017/10/18(水) 21:58:31.96
自分の環境では出ないんです。
以前は出てたような気がして。
0182171
垢版 |
2017/10/19(木) 00:35:57.49
>>175
ありがとうございます。
すぐには試せないので明日夜試してみます。
0183名無しさん@そうだ選挙にいこう
垢版 |
2017/10/19(木) 08:17:09.00
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

質問です。

登録シートと出力シートがあります。

登録シートから出力シートにvlookupで飛ばします。

検索値が2000件程度あるため、一気に印刷したいです。

コードをわかる方教えてください。よろしくお願いいたします。
0185名無しさん@そうだ選挙にいこう
垢版 |
2017/10/19(木) 10:29:51.37
>>172

訂正
「A」「b」は末尾
福岡09時30分A.CSV 福岡12時55分A.CSV 福岡15時30分A.CSV
福岡09時30分b.CSV 福岡12時55分b.CSV 福岡15時30分b.CSV
東京09時30分A.CSV 東京12時55分A.CSV 東京15時30分A.CSV
東京09時30分b.CSV 東京12時55分b.CSV 東京15時30分b.CSV

これをファイル名の同じ地名ファイルで同じ時刻で上から順番に並べるようなマクロを教えてください (行節約するため横向きに書いてます)
福岡09時30分A.CSV 福岡09時30分b.CSV
東京09時30分A.CSV 東京09時30分b.CSV 
福岡12時55分A.CSV 福岡12時55分b.CSV
東京12時55分A.CSV 東京12時55分b.CSV
福岡15時30分A.CSV 福岡15時30分b.CSV
東京15時30分A.CSV 東京15時30分b.CSV
こうなります。行節約するため、書き込みの時横向き2つ並べて書いてます。
時刻9時30分早いほうが先頭に並び下の方は時刻の遅い15時30分がくるように
したいです。
0189名無しさん@そうだ選挙にいこう
垢版 |
2017/10/19(木) 19:39:41.52
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

同じ項目で整理している表が複数シートあって、一つのシートの行を足したり削除したりして項目を変動させると、他のシートも連動して同じように行追加、削除ができるようにしたいのですが何かいいやり方ないですか?
0190名無しさん@そうだ選挙にいこう
垢版 |
2017/10/19(木) 19:57:32.38
>>178
ありがとうございます!
0191名無しさん@そうだ選挙にいこう
垢版 |
2017/10/19(木) 20:23:16.42
>>189
row挿入と削除のコマンドをハンドルする。

イベントを発行するためのクラスと、イベントを受けるオブジェクトモジュールが必要。

クラスからraiseeventで発行。
オブジェクトモジュールでwitheventで受ける。
cpu使用率を上げない為に、SetTimer関数などを使ってイベントの発生を監視。
0192名無しさん@そうだ選挙にいこう
垢版 |
2017/10/20(金) 00:24:21.91
テーブル使って列を挿入したら、テーブルの色が変わります。

規則正しい縞々が崩れます。

そうならないようにする方法ありますか?
0193名無しさん@そうだ選挙にいこう
垢版 |
2017/10/20(金) 04:07:12.68
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

中古パソコンの店で
購入時に限り、2003搭載を¥1000でやる
とありましたので依頼しました。使ってみると
「このエクセルは、もうだれかに使われているライセンスだから、買い直してください」
みたいなメッセージでも、暫くしたら出るのかなと思ってみていたら
全く何の不都合もなく使用できています

2003とか、このように古いこのディスクを
まだ今まで誰も使ったことがないから、警告メッセージが出ないのである
と解釈しておけばいいのですか?
出来てからだいぶたつディスクなのに、いままで誰も使ったことがないなんて
どういうことなのか不思議なので、質問してみようと思います
0194名無しさん@そうだ選挙にいこう
垢版 |
2017/10/20(金) 04:54:26.60
>>193
2003の時代はライセンスの管理がいい加減だったから
ぶっちゃけ何回でも使用できてた
ほかのどんなアプリでも、そういうのが当たり前の時代だったというだけのこと
0195名無しさん@そうだ選挙にいこう
垢版 |
2017/10/20(金) 04:54:48.44
>>192
条件付き書式で色を塗ればいい

例えば、
=MOD(ROW(),2)=1
で好きな色の塗り潰しを指定すれば、奇数行なら塗り潰しって設定になるから、シマシマは崩れない
0201名無し
垢版 |
2017/10/20(金) 12:14:41.91
>>194
2003は一応認証システムがある
一度認証したら2年くらいは認証できなくなるはず
2000までは実質無制限だったね
0203名無しさん@そうだ選挙にいこう
垢版 |
2017/10/20(金) 22:20:51.07
>>202
なるほど、わからんwって感じでしたがググりながらなんかわかってないままとりあえず全シートの同位置の行の挿入削除はできるようになりました。まだ試行錯誤中です
0204名無しさん@そうだ選挙にいこう
垢版 |
2017/10/21(土) 02:25:02.53
>>194
>>201
そういう経緯でエラーがでない、ということだったんですか
事実上の期限の有限無期限が、あるというわけだったんですね
明快な解説いただきまして、どうもありがとうございます


>>198
>>200
用途は、ローカル用でオンラインとは全く関係しない隔離使用で使っています
だから外部に影響というのは、ほぼないだろうと考えていますが
ご心配どうもありがとうございます
0207名無しさん@そうだ選挙にいこう
垢版 |
2017/10/21(土) 14:43:24.22
>>206
体感的にはよくわからないレベルのちょろいものなんだ
気にしてるのは、後で読んだ時のわかりやすさと、結果をシートに書き込んで、確認した時のわかりやすさ
セルでいちいち計算させるとどんどんどんどん横長のシートになっていって、見づらい。
非表示にしろ、はごもっともなんだけど、計算を追いづらい。
VBAでやってるんだけど、セルで計算する方がラクでわかりやすいんじゃ無いかなあ?と迷うものもある。

全然伝わらないと思うけど…
0209名無しさん@そうだ選挙にいこう
垢版 |
2017/10/21(土) 15:00:27.55
>>207
そうなってくると好き嫌い
・数式なら誰でも使えるし、改変もできる
・vbaなら触れる人が限定されるが>>208
一つ言えるのは混在はなるだけ避けた方が良い。収集がつかなくなる
0211名無しさん@そうだ選挙にいこう
垢版 |
2017/10/21(土) 20:01:04.54
一緒に使う人のレベルに合わせるのが一番だから、この場で最適な方法を示せるものでもないよな
前いたところなんて、関数ですら嫌がられて、四則演算だけ使って、どうしても関数が必要な場合は
名前を使って、何をやっているかの説明を名前ごとにつけて一覧にしてた

周りがVBA使えないなら、どうしても使わないと実現できないことをする必要がある
とかじゃなければ無理して使わん方がいいかと思う

普段は便利なんだが、改造が必要になった時に作った本人が去っていると、喜劇が起きる
0212名無しさん@そうだ選挙にいこう
垢版 |
2017/10/21(土) 20:12:47.29
去ったあとのことなんか知らん
残った人間だけでできることをやればいいんだよ
去って欲しくなかったら待遇を良くすることだな
0214名無しさん@そうだ選挙にいこう
垢版 |
2017/10/21(土) 21:39:25.62
周りの知識レベルが上げられそうにないなら
今やってる業務フローの自動化程度に留めとくべきだと思うなぁ

最初は引き継げるように座学の時間もらって少しずつ説明してたけど
For文とか配列あたりの段階でもギブアップする人ばっかりなのであきらめた
0215名無しさん@そうだ選挙にいこう
垢版 |
2017/10/21(土) 21:59:21.26
ねじくれてるな お前ら
そおやってじぶんがてっぺん気分でいるから嫌われるんだ
後の事なんざ知ったこっちゃ無ぇんなら、前のことだってどうだっていいだろ
いちいち例えるな 今何ができるかがいっちゃん大事なんだ
何も出来なくなったら老いさらばえてろ
0219名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 11:15:08.13
質問です

A1に 「1,2」
A2に 「1」
と入力されてる場合
1=1.5
2=0.5
とカウントしてほしいんだけど
どんな数式くんだらいいでしょうか?
0221名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 12:59:46.82
BとCを作業列にして、C1にカウントしたい数字、たとえば「1」を入れて、B列に以下の式を入れれば
B1=(IFERROR(FIND(","&$C$1&",",","&A1&","),0)>0)/(LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1)
でB1に0.5と出る
あとは全部足せばいい

作業列不可だとちょっと難しい
VBA使った方が早い
0222名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 13:25:26.26
新元号対応パッチでますかね?
それとも、買い替え需要として処理されますかね?
0234名無し
垢版 |
2017/10/23(月) 01:00:00.55
せめて2007までは改元対応してほしいなーと夢見がちなことを言ってみる
海外にも独自の元号あると思うけど、どうやって対応してるんだろうか
0235名無しさん@そうだ選挙にいこう
垢版 |
2017/10/23(月) 06:43:47.66
>>234
現時点で改元を伴う元号を使用しているのは世界中で日本だけ
イスラム歴や台湾の民国って元号が存在はするけど、改元は想定されていない
0236名無しさん@そうだ選挙にいこう
垢版 |
2017/10/24(火) 21:47:38.27
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

すれ違いだったらすいません
営業の成績と、時系列について質問です
営業はちょくちょく入れ替わるのですが、どういう表が見やすいでしょうか?
縦に時間?横に時間?
0238名無しさん@そうだ選挙にいこう
垢版 |
2017/10/25(水) 08:14:12.90
Excel VBAは習得までどれくらい時間がかかりますか?

1日1時間程度しか勉強できません。関数も中級以下のレベルだと思います。
0241名無し
垢版 |
2017/10/25(水) 18:00:07.17
>>238
習得ってどのレベルを指すのか曖昧すぎるのでは?
0244名無しさん@そうだ選挙にいこう
垢版 |
2017/10/25(水) 19:12:52.46
マクロの記録から徐々にググったりしながらやりたい動作を自動化させるといったことを覚えていったクチなんで、
標準モジュールをちょっといじる程度のレベルなんですが、クラスとかのことはさっぱりです。
何から勉強していくのがいいんでしょう
0245名無しさん@そうだ選挙にいこう
垢版 |
2017/10/25(水) 19:16:04.57
クラスってのはオブジェクトの事
エクセルもセルもワークシートも全部オブジェクト
それをsetで使うだけ

何から勉強していくのがいいかは人による
グラフを作るならグラフの自動化を覚えればいいし、ファイルのリネームが多いならファイルのリネームを覚えればいい
やらないことを覚えてもしゃーないぞ
0248238
垢版 |
2017/10/25(水) 22:26:10.45
みなさん、厳しいご意見ありがとうござます。

なかなか仕事が忙しくスクールにも通えない状況です。

仕事でExcelを使いまくる所に転職してしまい苦労しています。

今はExcelの知識、技能の向上を目指し頑張っていくわ!!
0250名無しさん@そうだ選挙にいこう
垢版 |
2017/10/25(水) 22:38:41.95
自動化簡略化して楽したい作業見つけたら
それを関数やVBAで実現出来ないか勉強すればあっという間に覚えられるよ
楽したいマンの俺はそうやって覚えた
0253238
垢版 |
2017/10/25(水) 22:56:58.65
楽したいというのもありますが、街の八百屋さんみたいな会社から、上場企業に転職したんで仕事が全くついていけません。

よくよく考えるとExcel使いまくりの今の仕事 → Excelよく分からない → 仕事が進まない → 仕事が覚えられないという悪循環にあることにようやく気づきました。つまりExcelの力をあげることは今の仕事をやっていくために絶対条件だと気付きました。

がんばりますよー
0255名無しさん@そうだ選挙にいこう
垢版 |
2017/10/25(水) 23:05:03.14
エクセル使えなくても適当に頑張って、偉くなったら部下にやらせれば良いんだよ
効率的にやってくれる部下ならもっと仕事与えれば良いし、苦手そうならそれなりで良いし
0258名無しさん@そうだ選挙にいこう
垢版 |
2017/10/26(木) 10:09:30.40
>>238
ExcelVBAは簡単に覚えられると思いますよ。
ExcelVBAでもAPIやクラス使ったりすると結構色々な事が出来て楽しいですよ。
ただクラスに継承がなかったり、一応あるインターフェースもゴミなので色々やりたくなったら他の言語も触ってみたらいいですよ。
0259名無しさん@そうだ選挙にいこう
垢版 |
2017/10/26(木) 11:25:28.04
2007を使ってるんだけど、オブジェクトのサイズ変更ってshift+矢印のショートカットキーで出来ませんでしたっけ?

前の職場でよく使ってたんだけど、職場変わって別端末になったら同じく2007なのにオブジェクト移動するだけでサイズ変更できない。。
0261名無しさん@そうだ選挙にいこう
垢版 |
2017/10/26(木) 16:24:41.22
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


「Book1.xlsx」に「Book2aaa.xlsx」のテーブルの一部を表示したいです


【a】「Book2aaa.xlsx」を開いている状態(問題なし)
=VLOOKUP(A2,Book2aaa.xlsx!テーブル2[#データ],5,FALSE)

【b】「Book2aaa.xlsx」を閉じると自動で下記ように表示される(問題あり)
=VLOOKUP(A2,'M:\テスト関数\Book2aaa.xlsx'!テーブル2[#データ],5,FALSE)


【b】の場合「#REF!」が表示されエラーになります

参照ファイル「Book2aaa.xlsx」を閉じている状態でエラー回避する方法を教えてください
0262名無しさん@そうだ選挙にいこう
垢版 |
2017/10/26(木) 20:05:10.21
>>261
何度も閉じているブックの〜って質問がされているが基本的に有効な方法はないな
基本的に、ブックを閉じるとリンク切れになる

ブックを開いた状態じゃないとアクセス権が存在しなくなるというとわかりやすいか?
0264名無しさん@そうだ選挙にいこう
垢版 |
2017/10/26(木) 21:59:45.17
>>263
Excel4.0マクロは、MSが公式にVBAとは別の存在と明言しているから
VBAが否でも、返答とするのはありじゃね?

職場で禁止されている場合は、VBAがじゃなくてマクロがのことが多そうだけど
0265名無しさん@そうだ選挙にいこう
垢版 |
2017/10/27(金) 05:19:16.97
4.0マクロサンプル

Sub Test()
Dim i As Long
For i = 1 To 20
Cells(i, 1) = ExecuteExcel4Macro("'C:\[Book1.xlsx]Sheet1'!R" & i & "C1")
Next i
End Sub

これで閉じているシート(C:\Book1.xlsxのSheet1)を取得出来ます。
使い方はググッて下さい。
0266名無しさん@そうだ選挙にいこう
垢版 |
2017/10/27(金) 13:11:36.26
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
特定のブックを開いて、左端のシートを新規のブックとして保存したいのです。が、左端のシート名は日付があるので同じ名前ではありません。ご鞭撻をお願いします。
0267名無しさん@そうだ選挙にいこう
垢版 |
2017/10/27(金) 13:52:11.27
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

1行飛ばしでオートフィルのようにデータを入力したいです

@〜Eを繰り返し入力したいきたいのですが
セルA1〜A5まで結合されていてA6には文章が入力されていてまたA7〜A11まで結合でA12には文章がはいっています
この繰り返しが続くシートの結合されている部分に@〜Eを入力していきたいです。
@〜Eというのは1日を4時間毎に区切ってるという意味でセルC列には日付を入力していきます
Eの後の@からは日付を+1するということもできますか。A1〜A5の時間帯は必ず@から始まるわけではなく
BやDから開始する時もあります
最初の一個分の日付や時間帯を入力するだけにしたいです
0269名無しさん@そうだ選挙にいこう
垢版 |
2017/10/27(金) 20:57:30.50
>>266
Sub Macro1()
Sheets(1).Copy
ChDir "C:\Users\a\Desktop"
ActiveWorkbook.SaveAs Filename:="C:\Users\a\Desktop\Book3.xlsx", FileFormat _
:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
0271名無しさん@そうだ選挙にいこう
垢版 |
2017/10/27(金) 21:50:34.94
>>270
VBAのことは自分ではわかってないけど、コピペするだけ(もしくはそれに近い状態)で使える状態まで書いてもらえるならお願いします!って事じゃないかな?

職場で禁止されてるとかなら、この欄「使えない」になるけどさ
0272名無しさん@そうだ選挙にいこう
垢版 |
2017/10/28(土) 08:49:59.92
基礎がなくて全く理解できないからVBAを否にするというのは
今後調整が必要になる可能性を考えたら至極全うな思考じゃね?

VBAを否にすれば、VBA以外の方法を教えてもらえる可能性が高くなるし
0273名無しさん@そうだ選挙にいこう
垢版 |
2017/10/28(土) 09:53:55.88
>>267 のパターンだと関数だけじゃどうにもならんと思う

基本は手動コピペとオートフィルだから、空白に見えるセルを挟むんじゃなくて、すでに文字が入ってる行をとばすとなると、入力パターン指定が必要になってくるよね・・・
0274名無しさん@そうだ選挙にいこう
垢版 |
2017/10/28(土) 14:36:14.81
【1 OSの種類         .】 Windows10 1709
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

VBA関連が多いので挙動の質問がここじゃなかったらすいません
1709にあげたあたりからか、シート上でマウスカーソルを動かすとそれがえらい点滅します
挙動を観察したところ、どうも少しでもカーソルを動かすと、
通常マウスカーソル(矢印)→エクセルマウスカーソル(十字)
と高速でレンダリングされているのが事由のようです

ストレスに感じるようになったのが最近なので元々の仕様なのかもしれませんが、
原因と改善策ご存じの方がいればご教示いただきたく
0278名無しさん@そうだ選挙にいこう
垢版 |
2017/11/02(木) 21:42:35.12
質問です
例えば1から100までの数の中に1、2、3、4、5、6、7、8、9、0の各数字がそれぞれ何回ずつ出てくるかを素早く数えることは出来ますか?
1から100までの部分も例えば29から63までみたいに変えても素早く数えられる方法とかもありますか?
0281名無しさん@そうだ選挙にいこう
垢版 |
2017/11/02(木) 23:07:26.26
A1=最小値
A2=最大値
作業列B列:とりあえず数字を並べる
作業列C列D列、ひとけた目とふたけた目
Eに0-9を入力
Fでcountif(c:d,e1)みたいな感じ
0282名無しさん@そうだ選挙にいこう
垢版 |
2017/11/03(金) 01:52:36.18
質問です。エクセル2013ピボットテーブルです。

(前提)テーブル
相手 科目 予算 実績
A   売上 100  103
A   経費 80  80
A   利益 20   23
B   売上 89  78
B   経費 122 119

Z   利益 16 18

これから作成したピボットテーブルが以下のようだとします。

   予算 % 実績 %
売上 1200 100 1000 100
経費  960 80 820 82
利益  240 20 180 18

この%は構成比です。ピボットテーブルの機能「基準値に対する比率」を使い、科目[売上]を基準にして出力しています。

(ご質問)
このピボットテーブルに構成比差(以下の「%差」部分)をピボットテーブルの中で計算させたいのですが、どう設定すればいいでしょうか?VBA可です。よろしくお願いします。

   予算 % 実績 %  %差
売上 1200 100 1000 100  0
経費  960 80 820 82 +2
利益  240 20 180 18 - 2
0283名無しさん@そうだ選挙にいこう
垢版 |
2017/11/03(金) 10:08:56.91
>>279-281ありがとうございます
>>279
EXCEL初めて1年くらいの初心者で数式書くのが苦手なせいか何度やってもエラーになってしまいました(´・ω・`)

>>281
その方法だと自分も出来そうです。
例えば数字●〜数字◯までの範囲となる●◯2つの数字を入力するだけで範囲選択出来たらもっと嬉しいですけどそんな方法はありますか?

>>280VBAはやったことがありませんが、最近EXCEL使う業務が増えたのでこの機会に挑戦したいとも考えてます。

会社の他の人にも使って欲しいので出来るだけ簡単に使えるように作れたら嬉しいです
0286名無しさん@そうだ選挙にいこう
垢版 |
2017/11/03(金) 12:18:22.67
VBAで全部数えるとこんなかな。ちょっとアホっぽいけど
1 To 100のとこ変えれば好きな範囲でできるよ

Dim i, j, num, numStr, arr(0 To 9)
For i = 1 To 100  
  numStr = CStr(i)
  For j = 1 To Len(numStr)
    num = CLng(Mid(numStr, j, 1))
    arr(num) = arr(num) + 1
  Next
Next
Debug.Print "0〜9の現れる個数:" & Join(arr, ",")
0287名無しさん@そうだ選挙にいこう
垢版 |
2017/11/03(金) 12:45:30.86
>>284
数字のシールの管理に使います
シールの種類は1〜0までの10種類で2桁の数字は2種類のシールを組み合わせて使います
25なら2のシールが1枚と5のシールが1枚みたいに

それで例えば1から99までの数字の組み合わせにそれぞれの数字シールが何枚ずつ必要かを素早く数えたいんです
マイナスはありません
1から始まるとも限らないのと最大値は未定ですがとりあえず100くらいまでで良いかなあと思ってます
0290名無しさん@そうだ選挙にいこう
垢版 |
2017/11/03(金) 12:52:15.21
>>287
でもそれってパソコン使わなくてもわかるんじゃない?

例えば
25〜100までなら、
十の位は2が5枚、3〜9は10枚、0は1枚
100の位は1枚
1の位は5〜9と0〜9が7セット
でしょ
まとめるの面倒だから任せるけど
これを公式化して電卓の裏にでもはっとけば良いんじゃないかな
0291名無しさん@そうだ選挙にいこう
垢版 |
2017/11/03(金) 13:47:05.79
配列数式で文字列を作って、繋げておく
={CONCAT(ROW(OFFSET($A$1,0,0,63−29+1,1))+29−1)}
これをLEN()−LEN(SUBSTITUTE())
0292267
垢版 |
2017/11/03(金) 18:52:28.19
返信おそくなりました
>>270
VBAで可能であればご教授ください
0294名無しさん@そうだ選挙にいこう
垢版 |
2017/11/06(月) 04:45:11.16
日本はサイバーテロにあまりにも無防備すぎます
中国韓国の電子機器やアプリにはスパイウェアが付属されています
中国韓国企業は個人情報盗む犯罪をしてもバグだの一部の社員がやっただけだと言い訳をして見逃されるという
犯罪が合法化している状態です、故意に犯罪をしても日本政府は外国の犯罪行為を取調べすら出来ない状態です

>【注意!】これは即アンインストール!Androidの危険アプリ一覧!
>中国製アプリに危険なアプリがダントツで多いです。
>中国の企業は全て中国政府が絡んできます。
>中国はスパイ活動がとても盛んな国です。そのため、個人情報を中国サーバーに送るのは普通になっています。
http://smartphone-watch.net/android-dangerapp/
0295名無しさん@そうだ選挙にいこう
垢版 |
2017/11/06(月) 17:53:17.48
教えてください

Excelでfrequency関数を使用
数値を列(縦)に入力すると正しく表示されるのですが
行(横)に入力したところは正しく表示されません

列に入力するしかないのでしょうか?
0297名無しさん@そうだ選挙にいこう
垢版 |
2017/11/06(月) 21:31:21.51
VLOOKUPの計算式を使い始めてから重くなったのですが、
軽くできますか?
0299名無しさん@そうだ選挙にいこう
垢版 |
2017/11/06(月) 23:19:28.88
>282
無理なんですかね…
0302297
垢版 |
2017/11/07(火) 04:59:15.43
>>300
>>298
ご返答ありがとうございました。

=IF(ISERROR(VLOOKUP(A1,C;G,4,FALSE),A2,VLOOKUP(A1,C:G,4,FALSE))

現在このような式で取得していますが、
INDEXもしくはOFFSETでの式を作りたいのですが、
うまく作れないです。
アドバイスお願いできませんでしょうか?

【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
0305名無しさん@そうだ選挙にいこう
垢版 |
2017/11/07(火) 13:09:47.79
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
0308名無しさん@そうだ選挙にいこう
垢版 |
2017/11/07(火) 23:28:36.39
>>301
それがピボットテーブル内に集計フィールドを入れるのですが、うまくいかないのです。

どういう設定にすれば可能かご教授お願いします。
0309名無しさん@そうだ選挙にいこう
垢版 |
2017/11/08(水) 00:04:42.04
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
同じ関数を利用しているはずなのに、一部のセルのみ正常に機能し、他のセルは機能しません
問題の関数のうち、正常に機能しているものは次のもので、
 戦績記録シートセルB3
 =MAX(IF(戦績記録シート!$B:$B=戦績閲覧シート!B1,戦績記録シート!$F:$F))
正常に機能していないパターンが次のものになります
 戦績記録シートセルC3
 =MAX(IF(戦績記録シート!$B:$B=戦績閲覧シート!C1,戦績記録シート!$F:$F))
戦績記録シートB3:B4のみ正常に機能しており(4の行はMIN)、C3:H4が正常に機能していません
問題の原因が判る方がいらっしゃったら教えてください

・問題の発生しているExcelファイル
https://ux.getuploader.com/YSYFs/download/37 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
0310309
垢版 |
2017/11/08(水) 00:08:19.04
>>309
>戦績記録シートB3:B4のみ正常に機能しており(4の行はMIN)、C3:H4が正常に機能していません
戦績閲覧シートの間違いです
0312名無しさん@そうだ選挙にいこう
垢版 |
2017/11/08(水) 07:27:08.92
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

複数のwordファイルの印刷をexcel VBAで自動化したいのですが
「セクション1の余白が印刷可能なページ範囲の外〜」
というアラートが出てしまうファイルがいくつかあり、
そこで止まってしまいます

disalertを指定してみましたが結果は変わりませんでした

余白設定変更をせずともアラートを出さなくする方法はあるか、
無いようであれば印刷を続行する良い方法を
ご教示頂きたいです
0313名無しさん@そうだ選挙にいこう
垢版 |
2017/11/08(水) 21:23:36.75
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】可

区分 値      区分 値
○ 1       A   1    
○ 1 B 1
○ 1 → B 1
○ 2 C 2
○ 2 C 2
○   2 C 2
○ 3 B 3
○ 3 A 3
○ 3 B 3

特定の条件式で区分の○のどれかがAになる場合があって
Aが発生した場合は同じ「値」を持つグループが「B」になる
Aが発生しなかった値のグループはCに区分される
そういう区分「○」を操作する条件式が思いつきません
何かいい方法ないでしょうか
0321名無しさん@そうだ選挙にいこう
垢版 |
2017/11/09(木) 05:05:54.83
>>309
MAXをSUMにしてみるとわかるが
実は、その式だと戦績閲覧シート!B3:B4は
戦績記録シート!$F列全体を参照していて
戦士を参照しているわけじゃない

どうも、戦士が一番多いからか戦績記録シート!$B列は
戦士の時のみTRUE扱いになっているっぽい
当然他のものではFALSEになるのでIFが成立しないから0になる

もしやるとしたら、範囲をしっかり規定
(例えば、
戦績記録シート!$B$2:INDEX(戦績記録シート!$B:$B,COUNTA(戦績記録シート!$F:$F))
みたいに)
して、配列数式で求めるのが一番簡単かも
0322名無しさん@そうだ選挙にいこう
垢版 |
2017/11/09(木) 07:11:21.82
>>309
C3=SUMPRODUCT(MAX((戦績記録シート!B:B="魔法使い")*IFERROR((戦績記録シート!F:F),0)))

見出しが文字列だとエラーになるけど、これiferror()ないと回避できないのかな?
0323名無しさん@そうだ選挙にいこう
垢版 |
2017/11/09(木) 10:08:16.98
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
A5=150
A5セルに「りんご」と名前をつける
B5=5
B5セルに「数量」と名前をつける
この状態で
C5=りんご*数量
とすると、Excel2016では「750」とC5に表示されますが
こういった1セルに名前をつけて計算させる方式は、Excel何年から使えるのでしょうか?
古いExcelを使っている人、数人(年数もまちまち)に同じシートを渡さないといけないので・・・
0325名無しさん@そうだ選挙にいこう
垢版 |
2017/11/09(木) 12:15:36.30
>>323
名前の定義が導入されたのが97のようなので95より前は無理だろうね

職場の2000で開発されたという請求書発行マクロに、名前同士の掛け算式があるから
2000以降なら確実に大丈夫だと思われる
0326309
垢版 |
2017/11/09(木) 16:52:00.67
ご返答ありがとうございます

>>321
IF(範囲=文字列条件)では範囲自体が範囲に含まれる最多の文字列として扱われるということですかね…
=MAX(IF(戦績記録シート!$B$1:INDEX(戦績記録シート!$B:$B,COUNTA(戦績記録シート!$B:$B))=戦績閲覧シート!C1,戦績記録シート!$F:$F))
にしてみてもIFは個々のセルではなく範囲を戦績閲覧シート!C1と比較している(戦士ではないからfalseとしている)ようです
配列で計算するにしても、
=MAX(
SUMPRODUCT(
(戦績記録シート!$B$2:INDEX(戦績記録シート!$B:$B,COUNTA(戦績記録シート!$B:$B)=戦績閲覧シート!C1 がtrueなら1,falseなら0にする関数)
*戦績記録シート!$F$2:INDEX(戦績記録シート!$F:$F,COUNTA(戦績記録シート!$F:$F)
)
)
のように、戦績閲覧シート!C1 以外の文字列を0扱いにするような、IFと同じような関数が必要になる気がするのですが、何か適した関数はあるでしょうか

>>322
理由は不明ですが、その式だと"魔法使い"の中身を何にしても記録シートのF3をMAXとして返しているようです
バグでしょうか…?
0327名無しさん@そうだ選挙にいこう
垢版 |
2017/11/09(木) 19:46:46.99
>>326
分からない。
なんかバグ臭いね、再計算されないわ

ってわけで修正した。範囲をF2から始めればいいだけだったわ
C3=SUMPRODUCT(MAX((戦績記録シート!B2:B100="魔法使い")*(戦績記録シート!F2:F100)))
C3=SUMPRODUCT(MAX((戦績記録シート!B2:B100="商人")*(戦績記録シート!F2:F100)))
0328名無しさん@そうだ選挙にいこう
垢版 |
2017/11/09(木) 20:34:46.79
>>326
MAXの方は、
B3=SUMPRODUCT(MAX((戦績記録シート!$B$2:INDEX(戦績記録シート!$B:$B,COUNTA(戦績記録シート!$F:$F))=戦績閲覧シート!B1)*戦績記録シート!$F$2:INDEX(戦績記録シート!$F:$F,COUNTA(戦績記録シート!$F:$F))))
で右方向にオートフィルで行けると思うんだ

問題はMINの方だな
この計算式このままMINにしても当たり前だが条件に合致しない0が最小値になる

応急処置的に
B4=SUMPRODUCT(SMALL((戦績記録シート!$B$2:INDEX(戦績記録シート!$B:$B,COUNTA(戦績記録シート!$F:$F))=戦績閲覧シート!B1)*戦績記録シート!$F$2:INDEX(戦績記録シート!$F:$F,COUNTA(戦績記録シート!$F:$F)),
1+COUNTIF(戦績記録シート!$B$2:INDEX(戦績記録シート!$B:$B,COUNTA(戦績記録シート!$F:$F)),"<>"&戦績閲覧シート!B1)))

みたいな計算式を作ってみた、
実際ン使う時は見やすさを考えて
COUNTA(戦績記録シート!$F:$F)
の部分はどこかにセルで独立させてそこを参照したほうがいいかと思う
0329名無しさん@そうだ選挙にいこう
垢版 |
2017/11/09(木) 20:37:47.73
最小値ってとりあえず0にしとけば大丈夫って風潮があるけど、
最大値ってどうすりゃいいんだろうな
infinity使えたら楽なんだけど
0330名無しさん@そうだ選挙にいこう
垢版 |
2017/11/09(木) 20:57:19.46
【1 OSの種類         .】 Windows7 64bit
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

昨日から下記のエラーメッセージが表示されるようになり,personal.xlsb が起動できなくなりました。

『Excel でアドイン 'c:\users\ユーザー名\appdata\roaming\microsoft\excel\xlstart\personal.xlsb' に関する問題が発生しました。
この問題が繰り返し発生する場合は、このアドインを無効にして、更新プログラムがあるかどうか確認してください。
このアドインを今すぐ無効にしますか』

・personal.xlsb の作り直し
・office2016 の修復
・Windows7 のシステム復元
を試しましたが,改善されません。
とても困っています。解決策がわかる方,お教えください。
0334309
垢版 |
2017/11/10(金) 05:43:22.49
>>327,>>328
ご返答ありがとうございました
お二人の良いとこ取りさせて頂きました
=SUMPRODUCT(MAX((戦績記録シート!$B$2:$B$10000=B1)*(戦績記録シート!$F$2:$F$10000)))
=SUMPRODUCT(SMALL((戦績記録シート!$B$2:$B$10000=戦績閲覧シート!B1)*戦績記録シート!$F$2:$F$10000,
1+COUNTIF(戦績記録シート!$B$2:$B$10000,"<>"&戦績閲覧シート!B1)))
0335名無しさん@そうだ選挙にいこう
垢版 |
2017/11/10(金) 23:27:48.10
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

超初心者なんだけど仕事で使うようになって
今VLOOKUPで検索した値を自動入力できるようにしたいんだけど
セルに数式を入れてそのセルは正しく表示されてるものの
そのセルの右下あたりを掴んでドラッグして下方向に数式コピーしようとすると
抽出先に指定してる範囲(A1〜C10とか)の数字部分まで1ずつズレてしまってエラーになってしまう
何度ドラッグしても、数式を維持するみたいなオプション選んでも1ずつズレてダメなんだけど何かやり方ある?
一つ一つ手打ちでVLOOKUP数式を入力すれば可能だけどやってられないし…
0336名無しさん@そうだ選挙にいこう
垢版 |
2017/11/10(金) 23:30:12.24
>>335
それはvlookupとはあまり関係がない、というかそれ以前の問題

A1を$A$1と書いてからドラッグすると、ぞれなくなる
この$付きを絶対参照という。無い方は相対参照だ

更に言うと
=a1
と打った時点でF4を押すと
=$A$4
もっかいF4を押すと
=A$4
となったりして便利ゾ
0337名無しさん@そうだ選挙にいこう
垢版 |
2017/11/10(金) 23:36:49.77
>>336
うわあ、ありがとう
自分で打たずメニューの「数式」のとこからVLOOKUP選んでやってたから
何度やっても相対参照になってしまってたのか…
助かりました
0338名無しさん@そうだ選挙にいこう
垢版 |
2017/11/11(土) 03:37:34.43
一定の範囲内を全部調べて、未入力が何セルあるか(全部未入力かどうか)を調べる関数ってないでしょうか?
=if(AND(A1="",A2="",A3="",A4="",A5=""),"結果A","結果B")とか、
=if(A1&A2&A3&A4&A5="","結果A","結果B")とやるのは
セル数が少ないうちは大丈夫なんですが、100、1000セルだと無理があるので
0340名無しさん@そうだ選挙にいこう
垢版 |
2017/11/11(土) 16:45:07.54
 A      B   C
1 タイトル 3月 4月
2 ○○     3 6
3 &#9747;&#9747;     2 0

みたいな表が1ブックに10シート
同じ構成のブックが6あるんですが
これを全て1つのブックの1つのシートにリスト状に纏めるVBAがあったら教えてください

ほしい結果
タイトル 月 値
○○    3月 3
○○    4月 6
&#9747;&#9747;    3月 2
&#9747;&#9747;    4月 0
0341名無しさん@そうだ選挙にいこう
垢版 |
2017/11/11(土) 16:46:51.91
文字化け失礼
□□とか
△△とかです
0342名無しさん@そうだ選挙にいこう
垢版 |
2017/11/11(土) 17:56:02.04
>>340
>みたいな表
じゃ無理だな
60ぐらいなら手作業の方が早いとおもう

コピーペーストの時に行列を入れ替えってのがあるからそれで頑張れ
0343名無しさん@そうだ選挙にいこう
垢版 |
2017/11/11(土) 21:04:21.98
ある日時から違う日時までの間が何日何時間何分か計算したいのだけどどんなやり方がありますか?
例えば今日の21:02から来週月曜日の8:46まで何日と何時間何分か、みたいな計算をしてほしい
普通にセルに日時を入れて引き算すると間の期間を数字化?したものが出るけど
これを何日何時間何分か即座に直してほしい
0345名無しさん@そうだ選挙にいこう
垢版 |
2017/11/11(土) 21:56:57.96
>>342
実は上の例はサンプルです
失礼しました

実際は約50行×19列
シート数は約70
ブック数も多分70くらい…

改めてよろしくお願いします
0348名無しさん@そうだ選挙にいこう
垢版 |
2017/11/11(土) 22:50:46.58
>>344
おお、ありがとうございます
導き出された030201を3日2時間1分と自動で表記を直すことはできますか?
自分で表示形式を「時間」や「日付」にしてみたのですが変わらないみたいで
0351名無しさん@そうだ選挙にいこう
垢版 |
2017/11/12(日) 00:04:54.47
計算過程を単位付きで表示させることって出来ますか?
a1に18:00
a2に20:00なら
a3に20:00時間-18:00時間=2:00時間
と表示させる感じです

今はtext関数と&使ってそれっぽく見せてますが
VBA使わなくて他の方法あるでしょうか
0353名無しさん@そうだ選挙にいこう
垢版 |
2017/11/12(日) 00:09:35.70
>351
それっぽくみせてるなら何が不満なのか分からない
vbaなしで実現できているなら別にそれでいいだろう
何が不満なのかを言ってくれないと、はいそうですかで終わる
0354名無しさん@そうだ選挙にいこう
垢版 |
2017/11/12(日) 04:05:59.35
【1 OSの種類         .】 Windows10 64bit
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

例えば(りんご・みかん・ばなな・ぶどう・メロン)とこの順番で指定したセルへループで入力していきたいです。
入力したいセルは1行飛ばしや3行飛ばしであったり隣り合っていません。
あとセルA1だけを手打ちで入力してその値を参照(A1に入力されている値が"りんご"であれば"みかん"から始まるよう)して入力されるようにしたいです。
0355名無しさん@そうだ選挙にいこう
垢版 |
2017/11/12(日) 10:38:16.88
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

エクセルでの一番簡単な日付の入力って何ですか?
一月分のデータを入力するのに今は改行後日付のみをテンキーで書き換えるみたいなことをしているのですが、他の表は入力規則のリストでドロップダウンリストでマウスクリックで行けるようにしたので日付もなるべくそうしたいです。

理想は、アクセスの日付入力みたいな感じです。アクセスでもいいのですが、アクセスだとドロップダウンリストをアクセスで一から作らないといけないので大変です。
0356名無しさん@そうだ選挙にいこう
垢版 |
2017/11/12(日) 10:49:10.13
入力規則使ってるなら、普通にどっかに1月分のリスト作って、それを入力規則のリストに設定すればいいんじゃないの
0357名無しさん@そうだ選挙にいこう
垢版 |
2017/11/12(日) 12:34:28.57
>>354
Sub foo()

開始行 = 1
最終行 = 20
飛ばす行数 = 2
種類 = Array("りんご", "みかん", "ばなな", "ぶどう", "メロン")
現在行 = 最初の行
種類インデックス = 0

For i = 開始行 To 最終行 Step 飛ばす行数
Cells(i, 1) = 種類(種類インデックス)
種類インデックス = (種類インデックス + 1) Mod (UBound(種類) + 1)
Next

End Sub

>あとセルA1だけを手打ちで入力してその値を参照(A1に入力されている値が"りんご"であれば"みかん"から始まるよう)して入力されるようにしたいです。
これはめんどくさすぎて無理
自分で頑張れ

>>355
a1=年
b1=月
c1=日
で、c1に入力規則設定して1~31選べるようにするとか
C1は普通に数字で入力したほうが早いと思うけど
0361名無しさん@そうだ選挙にいこう
垢版 |
2017/11/12(日) 22:08:12.86
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
エクセルファイルの一部を外部データとして扱う方法ってありますか?
0364名無しさん@そうだ選挙にいこう
垢版 |
2017/11/12(日) 22:16:07.41
閉じてる別ブックに接続するなら問題なくできる
シート名、もしくは名前付きセル範囲がテーブル扱いになるけど
リードオンリーで書き込みはできなかったかな
0365名無しさん@そうだ選挙にいこう
垢版 |
2017/11/12(日) 22:18:25.61
>>362
book1にbook2の内容を表示したい
外部データがアクセスの場合は、更新すると行が追加されていても自動的に反映される
エクセルの場合は
A1=Book2.xlsx!テーブル1[[#見出し],[列1]]
としても設定したセルだけしかリンクが貼られないので、行の追加などに対応できない
どうしたものかなと思いまして
0372名無しさん@そうだ選挙にいこう
垢版 |
2017/11/13(月) 01:37:02.47
エクセル2010だと相対パスってできない?2013だとできるっぽいんだけど…

同一フォルダ内のa.csvを読み込むようにしたいんだけど絶対パスになって、やり方よくわからない
ブック名まで含んだディレクトリをセルに書き込んで、そこを読み取ってindirectさせるやり方のほうがオススメなのかな?
0373名無しさん@そうだ選挙にいこう
垢版 |
2017/11/13(月) 09:04:59.96
【1 OSの種類         .】 Windowsさまざま
【2 Excelのバージョン   】 Excel97〜365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
いろんなOS(Macなんかもいる)で、いろんなExcelと互換ソフト(LibreやKing)の人が使う環境なのですが、count関数で「50セル捜査して1つでも数値が入ってる場合」をifで調べる場合、

=if(count(A1:A50),"入ってます","入ってません")と、
=if(count(A1:A50)>0,"入ってます","入ってません")どっちがいいのでしょうか?

こういった式が矢鱈と多いので、上の式にしたいのですが、
もし旧式のExcelや互換ソフトで、count結果1以上をTRUE判定できないバージョンや互換ソフトがあった場合、下の式にしないといけなさそうですが、
どうなんでしょう?
0375名無しさん@そうだ選挙にいこう
垢版 |
2017/11/13(月) 21:17:19.44
超基本だろうことで悪いんだけど
VLOOKUPで例えば(A1,テーブル1,2,FALSE)というようにやるとNAME?エラーが出てしまう
ちゃんとテーブル1の左側にA1と一致する数値があるのになんでエラーになるんだろう
何か式自体が間違ってる?
例えばA1に10という数値が入ってるとして、式のA1のとこを試しに10と入力して
(10,テーブル1,2,FALSE)ってすると求めたい数値が表示された
でもこれじゃ使い物にならない
0377名無しさん@そうだ選挙にいこう
垢版 |
2017/11/13(月) 21:29:44.60
>>372
そもそも論を言うとブックをまたがった設計はやめたほうがいいけど…
まぁ色々変な法則がある
https://support.microsoft.com/ja-jp/help/328440/description-of-link-management-and-storage-in-excel

>ブック名まで含んだディレクトリをセルに書き込んで、そこを読み取ってindirectさせるやり方のほうがオススメなのかな?
これもわかりやすさで言えばダントツなので、これもアリだと思う

>>374
間違いなく後者
0378名無しさん@そうだ選挙にいこう
垢版 |
2017/11/13(月) 22:40:13.81
>>376
えーなんだろう
数式も数式タブから選択だし、他も全てダイアログから選択で手打ちほぼしてないんだけど
FALSEのスペルミスはしてないし、NAMEエラーじゃなかったのかなあ
また明日確認してみるありがとう
0380名無しさん@そうだ選挙にいこう
垢版 |
2017/11/14(火) 00:05:46.75
>>377
ありがとう。
悩んでいることをすごくだらだらと長く書いてしまう。
やりたいことは、
csvをコピーペーストして、ブックに貼って計算。
使うのはcsvの中の特定の部分だけ。(例えば5列と20列と40列だけ)
1部分につき1ブックって設計。
それが20部分とかある。

つまり20ブック作る。20回csvを貼る。面倒。だから一つのcsvを読みにいく形が良いのではと思っている。

VBAでええやん、というのもわかる
ディレクトリをずらっと並べてそれを順次開いて貼って閉じるを繰り返すってやつ。
それでも良いと思うけど、最終的には、そのエクセルの計算結果をコピーしてwordに貼るって作業がある。

ここは手動なのかなあと思ってるので、csv→excelをVBAにしてもあんま意味ねえかあと思ってる。
wordとexcelがリンクしてると良いのだけれど。と思ってまずはcsv→excelをリンクさせようとしてる。

ブックを上げたいのはヤマヤマだけど企業秘密というかなんというか、いろいろバレそうなことが多すぎてだめ何だ申し訳ない
0386名無しさん@そうだ選挙にいこう
垢版 |
2017/11/14(火) 07:38:14.65
>>383
R1C1形式は知らない人が多いので、共有データには向かない
説明しようとしても、訳のわからないもの使うなで作り直させられた経験あり
0389名無しさん@そうだ選挙にいこう
垢版 |
2017/11/14(火) 10:01:17.66
将棋のプロ棋士の加藤123は触ったことあるけどそれじゃダメ?>>388
0390名無しさん@そうだ選挙にいこう
垢版 |
2017/11/14(火) 10:13:04.24
表計算はMultiplanから始めたから、今でも馴染んだR1C1形式で作業して、外に出すのは提出時にA1に変えてる。
位置関係はR1C1の方が分かりやすいと思うが。てか、123やEXCELで絶対参照の方に$が付くのが不自然なんだよな。
0391名無しさん@そうだ選挙にいこう
垢版 |
2017/11/14(火) 12:30:34.43
>>381
わからないことが渋滞しててちんぷんかんぷん。
有料でいいから相談したいぐらい。

>>384のように貼り付け先の場所はケースバイケース
ただ、貼り付ける範囲は決まってる。
(一部の列を非表示にして、表をはるので、貼り付ける範囲全部出ると困る。要検証。)
おまけに表4.2とかのように番号とかも変えなきゃだし…(wordの機能で自動で表番号を振る機能があるらしいがよくわからない)
0392名無しさん@そうだ選挙にいこう
垢版 |
2017/11/14(火) 15:40:23.06
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Googleのスプレッドシート
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

他スレから誘導されて来ました
スレ違いだったらごめんなさい

スプレッドシートの使い方について質問です
複数のメニューを選ぶと合計カロリーが表示されるシートを作りたいと思っています
 
例1 カツ丼(950kal)+ みそ汁(100kal) 合計1050kal
例2 カレー(800kal)+サラダ(150kal)  合計950kal
例3 カツ丼(950kal)+カレー(800kal)  合計1750kal

Excelもほとんど触ったことがないのでどこから手をつけていいのか分からないのですが、
どなたかやり方を教えて頂けないでしょうか?
簡単なマクロや足し算、引き算ぐらいはできます
0395名無しさん@そうだ選挙にいこう
垢版 |
2017/11/14(火) 20:13:49.56
【1 OSの種類         .】 Windows7、10(家と職場で別々のため
【2 Excelのバージョン   】 Excel 2013
【3 VBAが使えるか    .】 はい(少しだけ
【4 VBAでの回答の可否】 可

2点お尋ねいたします。

1 シート一覧の左の<>を右クリックした時のシート選択ダイアログを、キーボードだけで表示できますか?
 調べた方が悪いのかショートカットキーが出てきません

2 キーボード操作だけで、セル範囲後拡張後に書式無しコピーをする方法はありますか?
 想定しているのはshift + 矢印でセル拡張をした後、ctrl + D or Rでフィルをした時に、
 罫線などの書式は無しでやりたいと考えています。

よろしくお願いいたします
0396名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 12:38:23.65
【1 OSの種類         .】 Win10
【2 Excelのバージョン   】 Excel 2016
【3 VBAが使えるか    .】 初心者です
【4 VBAでの回答の可否】 可

40列ほどの要素がある表から下の感じでユーザーフォームで検索した結果をリストボックス、リストビューに表示するように試行錯誤しています。
絞り込み自体はうまくいってるようなのですが、無駄な空白行が大量に出てきます。
たぶん ReDim myData2(1 To lastRow, 1 To 10)と最終行まで格納してるからなのかなと思うのですが、ここをどう直せばいいのかわかりません。



'検索を実行
Private Sub CommandButton1_Click()
Dim lastRow As Long
Dim myData, myData2(), myno
Dim i As Long, cn As Long, r As Long

'検索するデータを配列 myData に格納
With Worksheets("テストデータ")
myData = .Range(.Cells(2, 1), .Cells(Rows.Count,
1).End(xlUp).Offset(0, 39)).Value
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
End With
0397名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 12:39:29.03
'配列 myData の中で検索で一致したデータを配列 myData2 に格納
ReDim myData2(1 To lastRow, 1 To 10)
For i = LBound(myData) To UBound(myData)
If myData(i, 8) Like "*" & textbox1.Value & "*" And _
myData(i, 9) Like "*" & textbox2.Value & "*" And _
myData(i, 6) Like "*" & textbox3.Value & "*" Then
cn = cn + 1
myData2(cn, 1) = myData(i, 1)
myData2(cn, 2) = myData(i, 8)
myData2(cn, 3) = myData(i, 9)
myData2(cn, 4) = myData(i, 19)
myData2(cn, 5) = myData(i, 10)
myData2(cn, 6) = myData(i, 14)
myData2(cn, 7) = myData(i, 33)
myData2(cn, 8) = myData(i, 38)
myData2(cn, 9) = myData(i, 39)
myData2(cn, 10) = myData(i, 6)
End If
Next
0398名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 12:39:46.05
'検索で一致したデータをリストボックスに表示
With ListBox1
.ColumnCount = 10
.ColumnWidths = "50;70;70;70;70;70;70;70;70;70"
.List = myData2
End With

'同じくリストビューに表示
ListView1.ListItems.Clear
For r = LBound(myData2) To UBound(myData2)
ListView1.ListItems.Add = myData2(r, 1)
With ListView1.ListItems(r)
.SubItems(1) = myData2(r, 2)
.SubItems(2) = myData2(r, 3)
.SubItems(3) = myData2(r, 4)
.SubItems(4) = myData2(r, 5)
.SubItems(5) = myData2(r, 6)
.SubItems(6) = myData2(r, 7)
.SubItems(7) = myData2(r, 8)
.SubItems(8) = myData2(r, 9)
.SubItems(9) = myData2(r, 10)
End With
Next

End Sub
0404名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 18:50:34.98
Vlookupの使い方について質問です
VLOOKUP(検索キー, 範囲, 番号, [並べ替え済み])の4項目のうち
後ろ3つの使い方はだいたいわかったのですが、検索キーの使い方だけよく分かりません
例えばセルのA2の文字列を検索キーに指定したい場合、どのように記入すればいいのでしょうか?
それともA2の文字列は手動で直接入力するしかないのでしょうか?
0406名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 19:22:38.31
>>405
vlookupは、検索先を昇順にソートしておかなきゃダメだとか、左側の列を検索出来ないだとかその他もろもろ面倒くさいクセがある

それらを分かってる人は、indexとmutchを組み合わせて使うよ
0407名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 19:42:42.01
>>395
1.無いんだな、これが
2.shift+F10で右クリック、値貼り付けならVキー
Vの代わりにFやRでもなんか色々貼り付けできるので覚えておくといいよ
0409名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 20:12:20.76
>>406
>>408
どうやら昇順ソートできてなかったのが問題みたい
昇順ソートするのは検索先の(テーブルなど)だけでOK?
検索先のテーブルがあるシートとVLOOKUPの式を入れるシートは分けてるけど
式を入れる方は他に優先したいソートがあって昇順ソートにしたくない

インデックスとマッチってのも調べてみるね
0410名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 20:19:50.51
>>396
全然読んでないけど、空白の要素を削除する処理をかませるのがシンプルだろうな
ただ、vbaにn番目の要素だけ削除して詰める、という機能はないのですげーめんどくさい

'配列 myData の中で検索で一致したデータを配列 myData2 に格納
'myData2で空白の要素を削除し、redimを掛けて要素数を減らす
'検索で一致したデータをリストボックスに表示

要素数を減らすのは個々が参考になるだろう
http://www.openreference.org/articles/view/580
0413名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 21:49:32.28
>>409
vlookup使うの?検索先だけでいいよ
というか式いれてる表をソートなんてすると、場合によってはカオスな事になるし、やるべきじゃない

ちなみにindexとmutchを勉強するなら、根幹部分のindexからどうぞ
indexを使う時、何列目かは指定するとして、何行目かを調べる為にどうするか?
→mutchで調べられるじゃん!何行目かを入れる所に入れ子にしちゃお!
・・・って流れだからね

&#9726;&#65039;index【=INDEX(範囲,上から何行目,左から何列目)】
表の中で何行目(数字)と何列目(数字、省略可だけど基本的に入れるようにした方がいい)を指定して、対象のデータを取ってくる関数

&#9726;&#65039;mutch【=MATCH(検索値,範囲,検索方法)】
検索値が範囲内の上から何行目(数字)にあるかを調べる関数
検索方法は、基本は0。
0=完全一致
1=最大近似値(昇順ソート必要)
-1=最小近似値(降順ソート必要)

やたら難しく考える人いるけど、やってる事は単純だし、そのうち検索先をソートしたくない場合も出て来た時に便利だから覚えておいて損はないよ

色々やるようになったらsumproductも面白いんだけど、これはもっとややこしい部分があるから慣れたら・・・ねw
0415名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 21:59:50.44
INDEXとMATCHの合わせ技できましたー
ひとつ質問なんですが、MATCHの項目外の文字列を入力すると#N/Aと表示されますよね?
(例えばカツ丼、カレー、うどん、ラーメンの中から選ばないといけない場面で、そばを入力すると#N/Aになる)
「それ以外」の項目を入力した際0を返すことはできますか?

>>413
ありがとうございますー
0417名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 22:43:08.47
自分もINDEXとMATCHの勉強中なんですが教えてほしいことがあります
あるセルから、2つ上のセルに2と書いてあったら、元のあるセルにも2、
5つ上のセルに5と書いてあったら、元のセルにも5って感じで
参照位置と数字が一致してたら、同じ数字を書き出したいんです
簡単なようでなんだか意外と難しく・・・
どうやったら実現できるでしょうか?
0419名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 23:04:15.08
>>410
なるほど、「'myData2で空白の要素を削除し、redimを掛けて要素数を減らす」というのは空白要素を除いて上書きしたデータにしてredimかけるって感じなんですかね?

Dim j As Long, k As Long

k = LBound(myData2)
For j = LBound(myData2) To UBound(myData2)
If myData2(j,1) <> "" Then
myData2(k,1) = myData2(j,1)
myData2(k,2) = myData2(j,2)
myData2(k,3) = myData2(j,3)
myData2(k,4) = myData2(j,4)
myData2(k,5) = myData2(j,5)
myData2(k,6) = myData2(j,6)
myData2(k,7) = myData2(j,7)
myData2(k,8) = myData2(j,8)
myData2(k,9) = myData2(j,9)
myData2(k,10) = myData2(j,10)
k = k + 1
End If
Next
ReDim Preserve myData2(1 to k - 1,1 to 10)

手元にファイルがないので試せていないですが、こんな感じですかね?
0420名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 23:16:17.09
>>419
そうそう
1,2,3,4,5 の配列から2を取りたいなら
1,3,4,5,5 と一個ずらして(最後の5は変化していない5)
1,3,4,5  と要素数を減らす
vbaの配列関係のコードは正直読みたくないので後は頑張れ
0421名無しさん@そうだ選挙にいこう
垢版 |
2017/11/15(水) 23:42:57.08
>>418
レスありがとうございます
もし重複していくつも数字が条件に当てはまるなら、一番下のセルの数字を、
例えば元の位置がセルA100で、セルA95とセルA80に条件が当てはまるなら
95とだけ表示したいです
0422名無しさん@そうだ選挙にいこう
垢版 |
2017/11/16(木) 07:39:02.98
>>417>>421
出来なくもないけどかなり変な設計だよ、それ
しかも際限なく作業セルも必要になるからめちゃくちゃ重くなる
そもそも何がしたいの?
0426名無しさん@そうだ選挙にいこう
垢版 |
2017/11/16(木) 10:10:50.26
>>417
それ、そもそも2つ上のセルだとか5つ上のセルだとかは、どこで指定するの?
固定?それとも隣の行とかに入ってるの?
具体的な表とかが見たい
0427名無しさん@そうだ選挙にいこう
垢版 |
2017/11/16(木) 11:22:31.74
>>421
VBAならすごく簡単にできるんだけどなあ

Sub foo()
  x = Cells(Rows.Count, 1).End(xlUp).Row
  For r = x To 1 Step -1
    o = Cells(r, 1)
    If r + o <= x Then
      Cells(r + o, 1) = o
      Exit For
    End If
  Next
End Sub
0429名無しさん@そうだ選挙にいこう
垢版 |
2017/11/16(木) 21:12:57.72
>>375だけど今日確認したらエラーはNAMEじゃなくてN/Aでした
これはなんでしょうか?
どうしてもVLOOKUPでやってみたいんだけど基本すら上手く動いてくれない・・・
0432名無しさん@そうだ選挙にいこう
垢版 |
2017/11/16(木) 21:41:11.82
>>430-431
ありがとう
参照できてないんだ・・・
小さい表を作ってやってみたら成功したので
普段処理してる大きめの表に同じように数式入れたらエラーになった
とはいえ実物を貼れないのでこんなこと聞かれても困りますよね
書式設定は怪しいのでまた確認してみます
ダメなら上で上がってるINDEXとか勉強してみる
0433名無しさん@そうだ選挙にいこう
垢版 |
2017/11/16(木) 22:21:59.98
例えば
1/1
と表示されてるのを検索しようとして
=VLOOKUP("1/1",B1:C2,1)
はダメだぞ

日付自国に関してはシリアル値という概念が必要
しかも少数誤差という概念も必要になる場合もある
0434名無しさん@そうだ選挙にいこう
垢版 |
2017/11/16(木) 23:09:35.93
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 Yes
【4 VBAでの回答の可否】 Yes
アドインのオンオフ(有効無効)をマクロで操作できますでしょうか
具体的にはRelaxToolsのオンオフがしたいのです 手動じゃなくマクロで
走っているときに容量がでかいデータをピボットテーブルで複雑な操作をすると
かならずクラッシュするのです
0435名無しさん@そうだ選挙にいこう
垢版 |
2017/11/16(木) 23:17:41.84
>>434
分からないが
まずは、アドインを事前にオフにしておかないとアドインは必ず読み込まれる
オーバーロードというfuntionの上書きはあるが、vbaにこの機能はない

つまり
・マクロ実行
・on error resume next
・アドインのfunctionをダミーで作る
・アドイン読み込み
・on error goto 0
こういう順序ならアドインをエラーでスルーできるかもしれない
とにかくエラー処理で分岐させることができれば、うまくいくんじゃないかなぁ
0436名無しさん@そうだ選挙にいこう
垢版 |
2017/11/16(木) 23:46:53.51
2×2×3通り計12通りのパターンで3変数関数を計算するんだけど、これってvbaだと良い感じにできるの?
その12通りのパターンはシートにすでに入力済。

エクセルだとif せる1が〜なら〜みたいにだらだらやることになる。

最初の枝と2つ目の枝は、シートで指定して、それに合わせて3通りの計算結果を返してほしいんだけど
0438名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 00:19:01.79
>>435
VBAで操作できるんですね!わーい
というわけで気合を入れてググったらありましたわAddInオブジェクト

? addins.Count
6
? addins(1).Name
Relaxtools.xlam

addins(1).installed=False
addins(1).installed=true

あざーっす
0439名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 00:38:26.15
>>420
>>396の質問の件ですけど、redimは多次元の場合最後の次元?しか変えられないみたいでした。なので今回1次元目の要素を変えたいのでこのままじゃ無理そうです…
0442名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 05:10:24.40
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
A列に種数字、B1に処理用数字を入れて、C列で計算結果を出すシートなんですが
(Aは60行あり、全てのAにB1ひとつを掛け合わせます)
必要な結果は、AがB1以下ならば、A=B1なら8、B1-1なら4、B1-2なら2、B1-3なら1、B1-4なら0.5、B1-5以下は0と言う結果が必要、つまり =2^(A-B+3)で、
逆にAがBを超えるなら、B+1なら16、B+2なら24、B+3なら32、B+4なら40・・・で青天井の結果が必要、つまり =(A-B)*8

これを、ifで切り替え
C1=IF(A1<=B1,if(2^(A1-B$1+3)>.05,0,2^(A1-B$1+3)),(A1-B$1)*8)

ここで、2^(A1-B$1+3)が2回出るので、2^(A1-B$1+3)を作業列Dに入れて、
C1=IF(A1<=B$1,if(D1>0.5,0,D1),(A1-B$1)*8)
D1=2^(A1-B$1+3)
としたんですが

AとBの差分が少ないうちはいいのですが、差分が大きくなると、
Dが3.34846439745709E+229といった膨大すぎる数字を吐き出します
(上の数字の場合差分992程度でこれだけの天文学的数字を1セルが吐く
ただしC列はちゃんと正しい数字を返してくる。上の例なら7936
最悪60行全部がその数字になる)

Dは非表示列にしてるとはいえ、数字が膨大すぎて精神衛生上非常に悪いのですが
これは、計算結果や他のセルに実は悪影響があったり、シートの動作が重くなったり
(Windows7+7時代の事務用PC+Excel2010は最初から動作がかなりもっさりしているので、
余計重くならないか心配)するものなのでしょうか?
0444名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 08:15:40.63
>>442
そもそも
> B1-5以下は0と言う結果が必要
と言うなら
> if(2^(A1-B$1+3)>.05,0,2^(A1-B$1+3))
なんて書かずに素直に
if(A1<=B$1-5,0,2^(A1-B$1+3))
でいいように思う

それも含めて俺なら
C1=8*
 If(B$1<A1,A1-B$1,
 IF(B$1-5<A1,2^(A1-B$1),
 0))
って書くかな
0445名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 15:15:01.34
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
入力規則でのリストのドロップダウンメニューですけど
VBAなしで多段階ドロップダウンメニューってできませんかね?
WEBブラウザのフォルダ構造ブックマークみたいな、まず大分類をマウスでポイントするとサブメニューが開いて小分類から選べるようになるみたいな
こんなかんじ
>ダッチワイフ
>バイブ      >TENGAミカヅキ         ←これ
            >ミカヅキ
            >ハイパーオルガマックス
            >ポルノホスピタル
>ローター
>オナホール
>SM
0447名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 17:26:28.35
>>446
それが出来るのはExcel2000からだよ
しかもそれじゃ質問者の望む「まず大分類をマウスで*ポイント*するとサブメニューが開いて小分類から選べる」リストにはならない
0451名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 18:08:48.99
>>448-449
それで出来るのは、「A列のリストを*クリック*および*選択*して、B列のサブメニューを開く」までだよ
質問者の望む「WEBブラウザのような」「*ポイント*でサブメニューが出る」ではない
0452名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 20:14:40.04
話題のビットコインで儲けた人、損した人を知りたい!
https://bo-ranking.biz/bitcoin/10315/
50万円が数千万円に。投資家に聞くビットコインの現状
分裂騒動で見えてきた仮想通貨が抱えるリスクと普及に必要な条件
http://jbpress.ismedia.jp/articles/-/51285
CMEがビットコイン先物を年内立ち上げ、価格は最高値更新
https://headlines.yahoo.co.jp/hl?a=20171101-00000027-reut-bus_all
2017年に入って646%上昇! ビットコインの「バブル」は他のバブルとは違う
https://headlines.yahoo.co.jp/hl?a=20171116-00000090-reut-bus_all
政府規制も効果なし、ビットコイン取り引きとICOは地下で継続―中国
http://www.recordchina.co.jp/b193095-s0-c20.html
ビットコインがアフリカでモバイル決済業界を圧倒すると言われる理由
https://jp.cointelegraph.com/news/why-bitcoin-will-beat-mobile-payment-to-its-game-in-africaJP
ビットコイン年初来伸び率断トツ、アップル株や日経平均との差歴然
https://jp.cointelegraph.com/news/bitcoins-performance-off-the-charts-literally
「史上最大級のバブルだ」元ファンドマネジャー、ビットコインの1万ドル超えを予測
https://headlines.yahoo.co.jp/hl?a=20171015-00010004-binsider-bus_all
仮想通貨の時価総額21兆円に、ビットコイン価格は1年で約9倍
https://headlines.yahoo.co.jp/hl?a=20171102-00000036-reut-bus_all
ビットコインFXやってみた!仮想通貨デイトレードのやり方
http://yukihiro.hatenablog.com/entry/2017/07/12/183353
ビットコインに続く次なる爆騰「暗号通貨5選」
https://headlines.yahoo.co.jp/article?a=20171009-00151919-hbolz-bus_all
ウォールストリートストラテジストTom Lee氏、ビットコインは来年6,000ドルへ。さらに2022年までに55,000ドルも
http://cryptocurrencymagazine.com/tom-lee-sees-bitcoin-jumping-to-6000-next-year
0454名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 20:51:01.65
就職内定先でExcel2013のマクロを作成したりするので勉強しておいてと言われたのですが、Excelのバージョンで作成方法違いますか?
またオススメの本などありますか?
0455名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 21:57:35.02
井川はるきのそこが知りたいExcelVBAプロの技 ナツメ社が、おすすめですよ。
20年前からほとんど変わらない言語なのでバージョンはあまり気にしなくても大丈夫です。
0456名無しさん@そうだ選挙にいこう
垢版 |
2017/11/17(金) 23:52:25.30
Windows7
【2 Excelのバージョン   】 Excel2013,2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
1)同じフォルダにあるブックをリンク
2)違う場所にフォルダを移動
3)絶対パスになっている

相対パスにするにはどうすればいいか。
運用として、フォルダの絶対パス自体は良く変わる。
参照してるブックは常に同じフォルダ内にある
というルールは徹底するんだけど、人に渡すからフォルダパスは変わる。
複数のブックを参照する予定。

よくわかんないけどどこかのセルにパスを入力して、
indirectで参照することは可能?そういう運用が良いのかなあ。
0457名無しさん@そうだ選挙にいこう
垢版 |
2017/11/18(土) 00:27:48.14
>>454
ブックオフだとVBA本は108円で意外と売ってる
基本的なことは殆ど変わらないから古本で大丈夫
まずエクセル持ってるなら入門書でも買って触ることが大事だと思う
0460名無しさん@そうだ選挙にいこう
垢版 |
2017/11/18(土) 09:28:39.79
エクセル2000ですが
行列を入れ替えて値の貼付け
をショートカットで出来ますか?
0461名無し
垢版 |
2017/11/18(土) 12:13:21.58
>>460
VBA使ってもいいならonkey使って割り当てればなんとでもなるが‥
0462456
垢版 |
2017/11/18(土) 14:53:24.69
>>456はレスもらえないほど的外れだったり、微妙な内容だったりします?
0463名無しさん@そうだ選挙にいこう
垢版 |
2017/11/18(土) 17:06:14.07
>>461
そのブックごとにプログラム入れてやる必要があるってことであればダメなんです。

このPCで開くすべてのエクセルで使える方法を探してます。

ctrl+○○でできればその方法を、なければ(クイックアクセスツールバーのすべてのコマンドにもなさそうなので)クイックアクセスツールバーにコマンドを自作して登録する方法があればそれを教えていただけないでしょうか
0465名無し
垢版 |
2017/11/18(土) 18:07:16.26
>>463
全てのブックにマクロ仕込む必要はないよ?
マクロ仕込んだエクセルをバックで開いたままにするだけ
Application.onkey “^F1 “,”test”
Ctrl+F1でtestプロシージャを実行
その中でご希望の処理をすれば良い
0466名無し
垢版 |
2017/11/18(土) 18:17:14.53
>>465
実用性を考えるならアドイン化してエクセル起動したら自動で立ち上がるようにしておけば、機能が増えたかのようになると思う
0467名無しさん@そうだ選挙にいこう
垢版 |
2017/11/18(土) 19:21:25.86
>>465 なるほど!それは考えつきませんでした。でも >>466 さんのアドイン化が希望に添いそうです。アドイン化ちょっと勉強してみます。ありがとうございました。
0468456
垢版 |
2017/11/18(土) 22:16:54.59
>>464
相対パスについて詳しい人いないかなあ。

4.0とはなんぞ
0469名無しさん@そうだ選挙にいこう
垢版 |
2017/11/18(土) 22:30:45.81
>>456
>>464のそもそもそんな使い方しない、には完全同意

まぁ暇なんで試してみた
・同じフォルダにブック2つ作成
・ブック1のA1=ブック2のA1
この時点では相対パス
ブック2を閉じると既に絶対パスになっている
0470456
垢版 |
2017/11/18(土) 23:43:09.93
>>469
そんな使い方しないか。
フォルダを移動ではなく、ファイルを閉じる、でも絶対パスになるのか。なるほど。
他ブックを参照するってことはやめて、それをコピペしてくるマクロを作るって方針に変えます。
0474名無しさん@そうだ選挙にいこう
垢版 |
2017/11/19(日) 10:06:05.22
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい(基礎とコピペ程度)
【4 VBAでの回答の可否】 可

概要
エクセルで日付で2017年10月以降はA以前はBとしたい。

詳細
エクセルで1号機から10号機まであり1号機の機器を更新し2017年9月はB
2017年10月以降はAとしたいのですが一番いい方法はないでしょうか?
0475名無しさん@そうだ選挙にいこう
垢版 |
2017/11/19(日) 10:26:08.68
>>474
IF関数で基準にしたい月の一日目のシリアル値以上か未満かで振り分けるのが一番簡単じゃ?
検索データが年月になってるなら、VALUE関数でシリアル値化しちゃえばいいわけだし
0478名無しさん@そうだ選挙にいこう
垢版 |
2017/11/19(日) 12:25:49.98
まだ試してないけど日付でIF関数で<括りの計算できる?
0480名無しさん@そうだ選挙にいこう
垢版 |
2017/11/19(日) 13:13:54.81
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい(すこし)
【4 VBAでの回答の可否】 否
今日が2017/10/2とする
A1〜10は10/1
A11以降が10/2
日付と品番は最多で追加されても5000行(仮に)

A列に日付
B列に品番
C列に品番重複を調べる式
C11=IF(COUNTIF($B$11:$B$5000,B2)>1,"重複あり","重複なし")
D列に重複回数を調べる式
D11=COUNIF($B$11:B11,B11)

毎日A列とB列に日付と品番が追加されていきます。
調べたいのは今日の中での品番重複です。
そのため毎日C列とD列の重複を調べる始まりの列数(第一引数)を手動で直しています。
しかしここをTODAYなどを使って自動化したいです。
ちなみに品番追加はどんどん追加されるのでその日に何列増えるかはわかりません。
よろしくお願いいたします。
0483名無しさん@そうだ選挙にいこう
垢版 |
2017/11/19(日) 13:50:58.92
できたらcountifsの第2条件まで書いていただけると助かります。

重複ありなし表示はどうすればいいですか?
なぜ重複回数だけでなく、重複ありなし表示をさせているかというと、重複回数だけだと1回のみカウントの1、と、重複カウントの1、が見分けられないからです。
E列に作業列増やすしかないかな。。
0486名無しさん@そうだ選挙にいこう
垢版 |
2017/11/20(月) 08:03:14.75
現在エクセルで32Mあるファイルを使っています。
自動計算、自動取得で動かしていますが、重いです。
最近ゲーミングPCが流行っていると聞きましたが、
そのくらいハイスペックなPCを使えば長時間使ってもサクサク動きますか?
0487名無しさん@そうだ選挙にいこう
垢版 |
2017/11/20(月) 08:37:25.12
>>483
>なぜ重複回数だけでなく、重複ありなし表示をさせているかというと、重複回数だけだと1回のみカウントの1、と、重複カウントの1、が見分けられないからです。

>>480
>A列に日付
>B列に品番
>C列に品番重複を調べる式
>C11=IF(COUNTIF($B$11:$B$5000,B2)>1,"重複あり","重複なし")
>D列に重複回数を調べる式
>D11=COUNIF($B$11:B11,B11)

ちょっとお節介的に気になったんだけど、これって
『重複品番全部(1カウント目を含む)』と『重複回数』両方の情報が必要って事?
いや、もし重複してる分を取り除くとかの目的なら1カウント目の情報は要らないなって思ってさ
0491名無しさん@そうだ選挙にいこう
垢版 |
2017/11/20(月) 14:20:55.07
阿藤快と加藤あいくらい違う?
0493名無しさん@そうだ選挙にいこう
垢版 |
2017/11/20(月) 21:59:55.39
>>492
じゃたいしてかわらないじゃないか(笑)
0495名無しさん@そうだ選挙にいこう
垢版 |
2017/11/20(月) 23:17:56.59
>>487
1カウント目も必要なのです。
1回目に出てきた品番と2回目以降に出てきた品番、それぞれに付随する属性を比較しなければならないのでどちらも必要という訳です。
重複削除が目的ではないのですね。
0496名無しさん@そうだ選挙にいこう
垢版 |
2017/11/21(火) 06:03:24.33
すみません。
下記の少し複雑な条件付けを特定のセルにしたいのですが、

・A1のセルに゛1゛が入ってもC1のセルは空白のまま。
・B1のセルに゛1゛が入ったらC1のセルには数字の゛1゛が入ります。
・A1、B1両方のセルに゛1゛が入った場合はC1セルは空白のまま。

以上の条件にてC1セルに関数を入れたいのですが、、

何卒、御教授宜しくお願いちまつ。
0500名無しさん@そうだ選挙にいこう
垢版 |
2017/11/21(火) 08:12:53.20
A1に1以外が入った場合でもB1が1でなければ、C1は空白?
それでいてB1が1か空白しかないのかな?
なら

C1=IF(SUM(A1:B1)<>2,B1,"")
で十分
0501名無しさん@そうだ選挙にいこう
垢版 |
2017/11/21(火) 12:18:25.42
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい(すこし)
【4 VBAでの回答の可否】 否

1月 A社
1月 B社
2月 A社
2月 B社
2月 C社

とA列に売上月、B列に相手企業があって、各行にA商品、B商品、C商品…と
各商品別の売上金額が載ってる表があるとします。

これを相手企業別の行、各月の列で売上金額のピボットを作りたい(各企業にコンパクト形式で商品が入ってくる感じ)のですが、どうすればいいでしょうか?
単純に行フィールドに企業、列フィールドに月、値フィールドに各商品の売上合計を入れると、各月の列内に商品ごとの売上金額が出てきて横長になってしまいます
0502名無しさん@そうだ選挙にいこう
垢版 |
2017/11/21(火) 12:34:51.26
496です。
皆さま

御指導、ご指摘、、
ありがたくちょうだいしました。

昨日半日かけて出来なくて、オナニーも忘れるほど悩んでました。

お陰さまで解決出来ました。
関数を組み合わせるのは初めてで、
ピイピイになってました。
ありがとうございました。
0510名無しさん@そうだ選挙にいこう
垢版 |
2017/11/22(水) 17:03:43.07
excel2010でグラフをかいたのですが、
凡例を表示させると、横軸の値がブワーっと出てきてしまいます。
データの系列名に入力したものが凡例に表示されると認識していたのでさっぱり原因が分かりません。
どなたかお力をかしていただけませんか?
0512名無しさん@そうだ選挙にいこう
垢版 |
2017/11/22(水) 19:21:23.35
>>510
それ、散布図か度数分布図あたりで、
表示されてしまう横軸の値まで、縦軸の値が「ない」とか、
横軸そのものがそこまで0とか
でない?
0513名無しさん@そうだ選挙にいこう
垢版 |
2017/11/22(水) 21:50:39.24
今日日付け分解しようとして必死こいてTEXTやMIDだのFINDだの組んでたら、YEARとMONTHとDAYを知らなくて、使って呆気なくて笑った
時間無駄にしたー、オレほんと馬鹿
0516名無しさん@そうだ選挙にいこう
垢版 |
2017/11/22(水) 22:50:31.74
>>514
ほんとな
よく1回だけなら手でやるとか周りは言うんだけど、その場はそれで乗り切っても次のために関数探しとくのが大事なことよな
0518名無しさん@そうだ選挙にいこう
垢版 |
2017/11/22(水) 22:53:09.73
>>517
明日の日付にしたいなら+1するだけ
月だけを表示したいなら書式設定で"m"にする
翌月の日付ならdatedif
末日を知りたいなら翌月の一日にして-1するだけとか

まぁ色々できる
0520名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 02:37:46.08
条件付き書式の設定で、数値を手入力しているセルを色つけたいのですが自動でできますか

数式を入力しているセルや空欄のセルは色なしとしたいです

手入力すべきだが、空欄のままになっているセルが色なしとなるのは仕方ないと思ってます(もし可能なら色つけたい)
0521名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 06:23:34.42
>>518
今回は表示させた月だけ、日付だけを別のセルで記号と組み合わせて表示させる必要があった
だからmonth,day,で表示させた後値貼り付けするので関数の方が採用かな
でも覚えとく、ありがとう
なるべく簡単な方がいいからね
0523名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 09:41:18.19
>>518
>末日を知りたいなら翌月の一日にして-1するだけとか
そこは翌月のゼロ日って書かない?

DATE(YEAR, MONTH + 1, 0)
0528名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 12:48:38.65
>>523
-1にする概念を意識したほうがいい場合はあるよ
WORKDAY関数使って、営業日を一日マイナスすることで
営業日の最終日を求めるなんて使い方ができるから
0529名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 12:50:09.04
けっこう複雑なのを教えてもらってそれをどこまでわかりやすくシンプルにするか、できたときはちょっと楽しい
自分はわかりやすいやつがやっぱり好きだな
0530名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 12:55:29.62
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】否

会社でキャリアパスの図を作成するように命令されました
 
Excelで下記URLのようなものを作りたいのですが
 
http://fsm.vip2ch.com/-/sukima/sukima505233.jpg
http://fsm.vip2ch.com/-/sukima/sukima505234.jpg
http://fsm.vip2ch.com/-/sukima/sukima505235.png
 
類似したテンプレート資料などが配布されているサイトなどがあれば紹介お願いします
また、上記URLのようなキャリアパスのモデルで使われるような図は何という名前の図なのでしょうか?
0537名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 14:03:20.75
Excelやマクロで重い処理をするのですが、パソコンのメモリ8と16、ssd256と512
で迷っているのですが、結構速度差はありますか?
0541名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 14:22:18.66
>>530
マジレスすると、
Excelどころか、Wordの2列×n行の罫線表に入力(手書きでも可)してもらって終わり。

テンプレ以前の問題で、
ファイルを重くし、
タダでさえ従業員の気を重くさせる人事管理強化資料の作成に特殊操作を強いて、
見栄えを良くすることの、何にメリットがあるのか分からない。

資料の見栄えより、後フォローの仕組みを考えた方がまだ良い。
従業員に作らせるだけして、何のフォローもないのが最悪。
だったらキャリアパスなんて、どこぞのコンサルの受け売りは止めた方がいい。

この資料で見てくれに拘るのは、
人事担当者の「仕事やってます」アリバイ工作としか思えない。

今日は「勤労感謝の日」だ。
アーメン。
0542名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 14:31:00.07
>>541
御託は立派だけど全然回答になっていない
君の能力では作れないことは分かった
 
まぁ、無理だとは思うが図の名前が分かれば教えてくれ
その名前で検索してテンプレート探すから

それも無理なら去りたまえ
0544名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 15:20:45.74
>>536
内蔵してる図形やSmart Art じゃ物足りないなら Photo Shopで図を自作して加工するしか
どのみちネットで拾ってもそのままじゃ著作権がどーのこーので使えなくなったりするから
地道にコツコツ絵を描くのが最良  会社がそういうのを望んでるんならな
「絵を描く仕事をしに来てるんじゃありません!」って反論できるならそうするがベター
「なんだ、そんなことも出来ないんか フンッ!」 っつって反感買えたらラッキー
「フリー素材集 買ってください」と土下座しろ

>>520
手入力なのかインポートデータなのかコピペなのか、どうやって判断する?
数式だけ判断するならアタマに = があるかどうかだけを見りゃいいが
0546名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 15:25:37.96
>>545
ぐぐって出ないから聞いている
君こそそのワードでぐぐってみろ
 
それで最良のテンプレートが出た問ならここに貼ってみろ
無いから
0548名無しさん@そうだ選挙にいこう
垢版 |
2017/11/23(木) 16:07:21.24
ばかやろうw 乞食か そこまで覚悟してんならあとは自分で動くだけだろ
おまえの最良が他の大多数の最良だと、どうして思えるんだ アタマおかしいマンか
0555名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 07:38:27.81
>>530
「のような図」
というのがどこまで許容されるのかわからん

大体どんなものを作りたいのかもよくわからん
特に3枚目は酷すぎるし、なんでこんなものを例に出してるのかも不明

一応回答するならキャリアパスで探すんじゃなく「矢印」や「シルエット」で検索して組み合わせるだけでいい
真似して作るなら一枚目からシルエットを外したものがいい。グラデーションは使うな

とにかくデザインやったことないなら絶対にやめたほうがいい。基礎知識ないと永久に終わらん。
色の意味もわかってないでしょ
0557名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 13:55:26.69
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A1に入力規則でA,B,C,D…というリストを作り
A1がAかBであれば、A2に予め用意したリスト1を
CかDであればリスト2を…と言った具合に表示させたいです

A1より上層のリスト(別のセルで「X」を選べばA1がAとBだけになるようなリスト)を作らずにこれを実現することは可能でしょうか
0558名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 15:31:51.81
>>556
使ったことあればわかると思うが図形の扱いはWordよりExcelの方が全然楽

つか、Visio程の機能は要らんからドローソフトをオフィスに含めて欲しい
図形編集の機能がWord/Excel/PowerPoint で微妙に違うので軽くイラつく
0562名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 17:25:55.98
>>561
簡潔に言えばそのとおりです
ただ、同じリストを複数の要素から呼び出せるようにしたいので、単に名前の定義を使うだけだと上手く出来ませんでした

最後の行は、AとBで呼び出したいリストが同じなので、これらを纏めてXと名前を定義
以下同様の作業を繰り返して、これらの定義した名前を別にリスト化、A1とA2の参照元にINDIRECTを使用すれば一応実現したものの、このやり方ではA1のリストに全部の項目が表示されないので不満だというわけです

やはり贅沢を言わずこれで満足すべきなんでしょうか
0566名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 19:24:43.68
【1 OSの種類         .】 Windows 8.1
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

VBAでRangeでコピーする時に、
コピー先が数式だった場合は上書きせずに残したいのですが
うまい方法はありますか?
0569名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 20:58:10.69
【1 OSの種類         .】 Windows7,8,10
【2 Excelのバージョン   】 Excel2010ー2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
共有機能を使うと猛烈に重くなるのですが、どうにかならないでしょうか?
アクセスやスプレッドシートなど、代替機能でも何でもいいのでお願いします
0570名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 21:02:22.92
>>568
ありがとうございます

何らかのオプションを使って一発でコピーできれば処理も早いのでその方が良かったのですが
やはりHasFormulaを使ってコピー処理をループさせるしかなさそうですね…
0574名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 21:36:09.58
>>573
入力シート
A列=貼り付け

制御シート
B列=フラグ。0か1を入力。あたいか関数かのフラグの代わりとする

出力シート
C列=すべて関数。B列のフラグに基づいてA列を分岐
D列=すべて関数。C列をすべて同じ処理

こんな感じ
0575名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 22:01:09.82
>>565
元のリストをもとにリストを引っ張ってくれば良いのでは?
元のリストだけいじれば、自動的に抽出されたリスト範囲が変動するようにすればいい

俺も国名の一部を入力すると、合致する文字のある国名のみ抽出されるリストとかは作ったことあるし
0577名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 23:16:10.36
構成を考えていますが、どちらが良いでしょうか?
前者だと、計算量が減る代わりにメンテがたいへんになるかもしれません
後者だとDBっぽい構成ですが、すごく重くなる気がします

メーカーで、売上は月締めなのでそこまでの量ではありませんでした
しかし、様々な例外が発生したり、個人売上も徐々に増えてきました次第です
どちらがよいでしょうか
それとも全く違う設計のほうが良いのでしょうか?

以下はシート設計の草案です

売上シート→各店合計シート→全店合計シート
       →個人売上シート→各課売上シート

売上シート→各店合計シート
       →全店合計シート
       →個人売上シート
       →各課売上シート
0579名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 08:41:16.69
元データを一つにするか、結果シートから更に結果を求めるかってことだろう
多少重くなっても、元データは一つにしたほうが良い
ずれたときにめんどくさい
0580名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 14:08:45.48
入力規則のリストで¥100¥200¥300ってやるとき、手入力と別に表を用意する以外でさくっと入れる方法ある?
一応全部価格は等間隔
0582名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 14:34:56.68
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

すごい初歩的なことで申し訳ありません。
個人番号を割り振ってある別シートの名簿の情報を、個人番号を入力するだけで名簿の情報を別シートに転記したいのですが方法がわかりません。
例えば1001番の方のデータがあり、メインのシートに1001と入力すると残りの情報が出る、といったような感じです
どなたか教えて頂けると幸いです
0590名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 16:01:10.13
>>586
いや必要だから使ってるんだよ
20列vlookupすんのに順不同で現れる列をいちいち探すなんて時間の無駄や間違い起こす可能性高いことはできない
あくまでvlookupを使う場合の話な
0592585
垢版 |
2017/11/25(土) 16:03:31.32
>>589
サンクス その通り
ところで減らせるとは?
>INDEXでももちろん代用可能だがVLOOKUPならMATCHをひとつ減らせる
0601名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 18:31:03.16
少数誤差なら、MATCHでも起きるからな
単純に、VLOOKUPだと基準列の右側しか検索できないがINDEXとMATCHの組み合わせなら可能
っていうのが大きいと認識してた

あとは、LOOKUP系は揮発性関数だから処理が重くなりやすい

ただ、ファイル容量はLOOKUP系使った方が少なくてすむから
表をメールで送る運用とかならLOOKUP系使う意味がある
0602名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 19:43:30.01
元データが5分毎値で、表示形式が年月日時分のまま、これをキーにして、
INDEX、MATCHで検索・集計しようとしたら、引っぱれない場合があった。
YEAR()*10^8+MONTH()*10^6+DAY()*10^4+HOUR()*10^2+MINUTE()
で整数化したキーでしのいだけど。
0610名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 23:37:02.75
>>609
配列って配列数式の略のつもりで言ってるのか?
配列と配列数式は全然別物。意味も結果も全く変わってくるので変に略すのはやめてくれ

そのページの配列数式に関してはそう、複数条件だから
0612名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 23:50:05.60
>>596
いや、普通に
1.4
1.2
1.5
とか入力して1.4を検索しようとしてみ。indenxとmatchならできるけどlookupはできないから。
場合によっては使えない時点でlookupを使う意味なんてないと思ってる
0618名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 08:21:45.63
>>614
とりあえず仕事かどうかはおいといて、昇順に並び替えればいいだけでしょ?そもそも小数整数関係なく並び替えてから使えって仕様だよね?
小数とは関係なくない?
0619名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 08:51:17.27
>>618
でも趣味でExcelいじる人なんてあんまいなくてみんな仕事で使うんだならそこはループで愚問になると思うぞ
言いたいことはわかるけど
小数点以下使う人はindex match使えばいいじゃん
0620名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 08:58:18.14
>>618
他の人も共有して使っているだとか、
元データに数式入ってるだとか、
現状の並び順に意味がある場合(ソート不可な不規則ルール)だとかで、
並び替え不可な状況というか、並び替え直せない、
もしくは並び替えると不具合や不都合が出る状況というものがあるんだよ
0622名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 09:20:23.60
>>621
だから言いたいことはわかるけど、と言ってるだろ
しかし実務で使う人には並べ替え自体が無理な場合もあり例えナンバリングで戻してもそれに余りある弊害があれば使えない
その人たちはlookupを使う選択肢はそこで消えるんだから

ただ小数点以下の問題だけについて言えば昇順降順かければいいだろう

しかしあーlookup使えないと頭から葬り去る人はそこ止まり
厳密にそこを区分けして分類して頭に置いておける人がいちばん実務で発揮できる人

これならどうだ?
0623名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 09:38:06.63
>小数点以下の問題だけについて言えば昇順降順かければいいだろう
この話しかしてないのに仕事の話に飛躍するのが不思議
0624名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 09:41:28.84
>>622
>厳密にそこを区分けして分類して頭に置いておける人がいちばん実務で発揮できる人
脳死でindexmatchでいい。
別に超高速とか機能が豊富ってわけでもないし、lookupを使う理由が一切ない
人のシートを改修する時に、昇順じゃないとエラーになるって知識は無いとだめだけど
0628名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:15:30.25
>>626
わかったよ
趣味でやってる人がいることも理解しておくから、仕事でしかやらない人がいることも理解しておいてね
何事もその場の状況で役立たなければ意味がないでしょ
0629名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:16:57.33
なんでもいいけど、小数点の問題だけじゃなく、
漢字が検索元の場合、ソートしててもふりがな基準の昇順になってたり
その他要素で正常に検索できない時もあるよ

・左側の列から検出できない
・小数点使えない
・基本的に検索元を昇順ソートしないとならない
・更にソートのかけ方にも注意しなきゃならない
・テーブルに行を増やして使えない
・・・etc

こんなめんどい事を、頭に入れながら使わなきゃならない不確定要素満載なlookup関数使うぐらいなら、初めからindex&match使う人って人は多いよ

特に、仕事で思いがけなかろうが何が何でもミスがあってはいけない場合や、エクセルが趣味になっちゃうぐらいの人(このスレは、正直、定期的にパズルクイズを出題してくれる場所だと認識してる)とかね

そりゃ、ちゃんと最左列にソートされた整数の数値(色んな意味で)番号で管理された、重複等もなく、今後データが増える事も無いおりこうさんリストを使った単純な検出なら、そりゃlookup関数がラクだろうけどね
0632名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:36:12.28
>>629
毎回作業する前にいちばん左に一列挿れてナンバーふってる
それしか今んとこ対処法がないからね
そしてまず重複チェックするところから始まる
0633名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:36:47.51
最近はマイノリティに配慮して、個人情報の登録で「男、女、その他、無回答」の中から選べるみたいなケースが増えてるもんな
0635名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:45:55.74
>>634
共有で使ってるファイルだからいろんなトラップがあることとファイル自体が重くてなvbaはそれには使ってないね
他のシステムから抽出したものはvba
ほんとになんでもディスりたいお年頃なんだな
そろそろお前めんどくさいから自覚しろよ
0636名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:51:46.40
>>635
ディスりたいの意味がわからんが、貶めたいって意味でいいのかな
別にそういう意味じゃなくて、単に>>632の作業は誰がどうみても単にウンコだろうってだけだよ
0637名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 11:14:44.62
>>636
まぁなんでもいいけど絶対的に
vba>手で入力
という図式に頭が凝り固まってるのも困ったもんだ
だからきみがその構図を崩したくないならそれでいいでしょ
こっちにはこっちの事情があってやってること
0642名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 11:25:12.70
>>640
できるならやってる
さすがにアナログ用紙からの入力は無理だった
二重線と印鑑で消したものはOCRで認識できない
これさえなければスキャンしてvba走らせて全部完了なんだがね
0645名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 11:48:52.42
>>641
いくら色々なことが進んでも手作業が全くのゼロになることはないからね
仮に記載誤りをする人間がゼロになったら可能かもしれないね
人間がロボット化することで防げるというww
今はもう半分そんなところだと思うけど
システムを使うために人間が正しく処理することを要求されてる
どっちが命令系統なのか支配されてるのかw
0646名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 11:59:02.63
間違いの許されない入力作業は、同じ物を2人や3人に入力させて答え合わせする
そのうち1人分をOCRにして人権費を節約することはあるけど、OCRだけってのは怖くてできない
0648名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 12:06:54.07
>>643
君にその権限はないので無視するよ
その言動は君のプライドを君自身の手によって傷つけているだけなので、一方的に禁止と言い張るのはやめたほうがいいんじゃないかな?
俺は何も気にしてないからどっちでもいいけど
0651名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 12:17:01.43
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

1行飛ばしでオートフィルのようにデータを入力したいです

@〜Eを繰り返し入力したいきたいのですが
セルA1〜A5まで結合されていてA6には文章が入力されていてまたA7〜A11まで結合でA12には文章がはいっています
この繰り返しが続くシートの結合されている部分に@〜Eを入力していきたいです。
@〜Eというのは1日を4時間毎に区切ってるという意味でセルC列には日付を入力していきます
Eの後の@からは日付を+1するということもできますか。A1〜A5の時間帯は必ず@から始まるわけではなく
BやDから開始する時もあります
最初の一個分の日付や時間帯を入力するだけにしたいです
0653名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 13:10:21.41
ソートかけてまでlookup使いたいやつ、いるなんねびっくりだわ
なんのメリットがあるんだろう
こだわりありそうでそんな人のエクセル使いたくねえ
0655名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 17:57:43.05
>>652
この画像だとA1〜A5に@、A7〜A11にA、A13〜17にBと入力していきたいです
最初の@〜Eが11月26日だったら次の@〜Eは11月27日にしたいです
わかりにくくてすみませんでした
0656名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 18:36:18.22
>>655
完成
https://dotup.org/uploda/dotup.org1398111.zip.html

マクロを編集することで設定できる

最初の日にちがこれ
日付 = "2017/11/26"

10日分はここの9。
For i = 0 To 9

inputboxかなんかでもう少し使いやすくできるけど、そこは自分で頑張ってくれ

Sub foo()
Dim 日付 As Date
日付 = "2017/11/26"
時間 = Array("@", "A", "B", "C", "D", "E")
'10日分
For i = 0 To 9
'6回分
For k = 0 To 5
行 = i * 36 + k * 6 + 1
Range(Cells(行, 1), Cells(行 + 4, 1)).Merge
Cells(行, 1) = 時間(k)
Cells(行, 3) = 日付
Next
日付 = 日付 + 1
Next


End Sub
0658名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 18:54:56.48
>>653
本人にこだわりがあるんじゃなく共有相手がVLOOKUP以外覚える気がない上司だったから
仕方なくソートして使ったことはある

覚える気もないのに関数にいちいち注文つけないでほしかった
0659名無しさん@そうだ選挙にいこう
垢版 |
2017/11/27(月) 00:39:43.07
会社の連中、部署にもよるけど、なんでみんなアホみたいにvlookup連呼するんだろうな
まるで関数といったらこの世にvlookupしかないかのよう、馬鹿の一つ覚えみたいに
しかもブイルックと略して言うのが最高にキモい
「当てます」とかいきなり言われて、は?と思ったらvlookupすることを言うらしい
せめて引き当てるくらい言ってくれ
そしてhlookupだってlookupだってあるんだわ
0660名無しさん@そうだ選挙にいこう
垢版 |
2017/11/27(月) 02:42:08.00
>>658
>>658
他の人も書いてるけどvlookup についの話はもう終わってるし明らかに雑談なので、Excel雑談スレへ移動お願いします

質問としても出ていた「vlookupの少数不具合について」「vlookupからindex&matchへの置き換えについて」からも大きく離れてしまってるしね
0663名無しさん@そうだ選挙にいこう
垢版 |
2017/11/27(月) 15:01:08.51
>>662
データぶつける、とか、突合するならまだ言うな
意味わかるし
前にvlookupを「データ付け合わせする」と連呼する女子がいて毎回頭の中で「ご飯の付け合わせ?」と吹いていたw
「突き合わせ」だろ、そりゃと
付けて合わせる、ってconcatenateとかマージじゃないんだからw
自分が喋ってる日本語が理解できてないことにも気づいてないのはさすがに痛かった
0664名無しさん@そうだ選挙にいこう
垢版 |
2017/11/27(月) 16:17:24.63
数値を自動でMillionやらBillionやらに直す方法ってあります?
0665名無しさん@そうだ選挙にいこう
垢版 |
2017/11/27(月) 16:55:06.18
001 00001 東京 T1 20 2017/11/01
002 00010 東京 T1 20 2017/11/06
003 00001 東京 T2 20 2017/11/15
004 00010 東京 T1 15 2017/11/15
005 00001 大阪 T1 20 2017/11/21
006 00001 東京 T2 20 2017/11/24

こんな感じのデータが各シート毎にズラッとあって
そのうちの列BCDEが完全一致する行をデータ毎に色分けした上で全シート色付けしたい
といったことをVBAとかマクロとかわからんから関数で教えてという指定がされているんだが可能なのだろうか
一行のうちBCDEだけを全シートで重複チェックして完全一致したら色付け
カウントアップして行に色が付いてなければ新たなチェックデータとしてまた重複チェックで色分け
行に色が付いてたらカウントアップ
以下データが無くなるまでループ
と考えてるんだがエクセル関数でどうやるんすかね・・・
0670名無しさん@そうだ選挙にいこう
垢版 |
2017/11/27(月) 22:47:42.39
>>668
ですよねー
しかも追加要望でシート1,2だけの重複なら赤、シート1,3だけの重複なら青、シート1,2,3の重複なら黄みたいな感じで一目見るだけでわかるようにしたいんだよねとか言われたっていう
シート数は12まであるのに正気かこのおっさんと思った
しかもやって欲しいじゃなくて教えてほしいってのがまた面倒で・・・
50過ぎても学ぼうという姿勢は立派だが管理用ソフトでも買った方がずっと良いよね

>>669
もちろんあるよ!それも色分けしたいんだって!
そこまでして何を見分けるというのか俺にはわからない
0671名無しさん@そうだ選挙にいこう
垢版 |
2017/11/27(月) 23:00:31.16
>>665
とりあえずBCDEを&でつなげた作業列Fを作成だな

シート数が12って決まっているならcountifを12個並べればいい
条件付き書式で
=if(countif(シート1f:f)>0,1,0)+if(countif(シート2f:f)>0,1,0)if(countif(シート3f:f)>0,1,0)...
みたいな感じ
0673名無しさん@そうだ選挙にいこう
垢版 |
2017/11/27(月) 23:15:50.55
>>670
ん?どのシート内に重複があるかで色分けなの?
検出した値毎かと思ったんだけど・・・

もし両方だとしたら、色の区別はどこでつける気だw
0674名無しさん@そうだ選挙にいこう
垢版 |
2017/11/28(火) 18:26:41.34
VBAで、コメントに重複する値のあるシートと座標を表示するように組むのが
一番現実的な気がしなくもない

少なくとも条件の競合でカオスになることはないかな、と
0675名無しさん@そうだ選挙にいこう
垢版 |
2017/11/28(火) 19:53:52.35
vbaで日付の列を昇順にsortすると
2017/10/1
2017/2/9
2017/4/3
2017/6/15

みたいに10,11,12月の方が1が反応して上に上がってしまうんだけどどうしたらちゃんと並びますか?
0683名無しさん@そうだ選挙にいこう
垢版 |
2017/11/29(水) 20:16:33.04
VLOOKUPが上手く機能しない理由がわかった
検索値は小数とかじゃない簡単な数字なんだけど
それが「数値じゃなく文字列になってる」とエラーが出てたの気づかなかった
エラー出てるのをクリックして数値に直すみたいのしたらVLOOKUPちゃんと機能したんだけど
このエラーが大量にあるからいちいちクリックして直すのが大変
一度に全部「数値」に直すことはできますか?
0686名無しさん@そうだ選挙にいこう
垢版 |
2017/11/29(水) 20:36:10.91
>>683
a1=1
a1をコピー
文字列になっているところに形式を指定しては有りつけ
「値」「乗算」
これですべて数値にできる
左揃えになるのは我慢してくれ
0688名無しさん@そうだ選挙にいこう
垢版 |
2017/11/29(水) 20:41:20.13
>>684
ごめん初心者でバリューがわからないので調べてみます

>>685
メモ帳は良さそう
ちょっと明日やってみる

>>686
ひとつひとつ貼り付けるってことかな?
文字列になってて数値に直したいセルが100箇所とかあるので
それだとクリックして直すのと変わらないような…

>>687
その数値化をしたいんですけど
一気にやる方法はないだろうか…
0690名無しさん@そうだ選挙にいこう
垢版 |
2017/11/29(水) 20:43:23.91
どう言えばいいかわからないけど
検索したい値は
10
10
10
空欄
24
24
24
空欄
のようになってて
この10とか24が全て文字列になってしまってる状態です
0693名無しさん@そうだ選挙にいこう
垢版 |
2017/11/29(水) 21:18:14.13
>>688
>その数値化をしたいんですけど
>一気にやる方法はないだろうか…
セルの値は今のままの文字列で構わない
数式を変えて対処するって意味
例えば、A1が文字列の"3"だとしても
A1+0とすると数値の3になる
0696名無しさん@そうだ選挙にいこう
垢版 |
2017/11/29(水) 21:51:55.19
>>692
すげええええ
ドンピシャでした
区切り位置にこういう機能があるのは自分では絶対見つからなかっただろうな…
他の皆さんもありがとう、他のやり方も試してみる
説明が下手ですみませぬ
0698名無しさん@そうだ選挙にいこう
垢版 |
2017/11/30(木) 03:07:46.48
>>696
いや、そんな変な質問の仕方ではなかったよ
ここの人達が区切り位置のやり方知らないはずないんだけど、関数使いたがったり、説明端折ったりしてるから、わかりづらいことはある
自分はそこまで玄人じゃないから初歩の疑問がわかるだけ
0700名無しさん@そうだ選挙にいこう
垢版 |
2017/11/30(木) 08:07:14.15
>>698
人によっては独学(というか必要に迫られてやらざるを得なかったり)でこなしていった結果、学習本やスクールで初期に習うような機能を知らなかったりする場合もあるよ
そういう人間は、変な関数の応用とか得意だったりするけどねw

色んな人がここでアドバイス出来るのは、スレ的にもいい事だと思う、ありがとう
0702名無しさん@そうだ選挙にいこう
垢版 |
2017/11/30(木) 10:16:10.93
>>699
そこの選択はめちゃアバウトにやってるけど、記号が入ってて区切りたい時は上
記号なしで書式変更したい時と自分で自由な位置で区切りたい時は下を選択してる
そんな変なことになったことはないので良しとしている

>>700
698だけど、自分も必要に迫られてやってるタイプ
ただ今の職場の周りがExcelスキルがっぽり低いのと周りと方法のシェアをしない文化でインプットが恐ろしく少ない場所
だからこういうとこ来てシェアできたら有用だなと思っている

難しいことも必要だけどその土台にはこういうのが必ずあるから
vba組むようになったら区切り位置とかより関数で処理が活きてくるね
0703名無しさん@そうだ選挙にいこう
垢版 |
2017/12/01(金) 00:13:24.65
csv
東京都
鉄50トン
東京都
銀40トン
東京都
大根30トン

入力シート
東京都

と入れると、出力シートには、
東京都
銀40トン
と掻き出される

こんな感じで、2つ目の枝までセルで指定してそれをcsvから拾ってくるマクロ作った。
1列目のセルを一つ一つ調べて、東京都にマッチしないかを調べる
東京都がヒットしたら、銀にマッチしないか調べる
しなかったら、
1列目のセルから続けて調べる
という風にしたら
入れ子になってわかりづらい感じに。
3層ぐらいの入れ子だとプログラムでは普通なのかなあ。
0707名無しさん@そうだ選挙にいこう
垢版 |
2017/12/01(金) 09:41:59.66
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
関数の式の中にある「:」で省略されたものも含めるセル番地を、その参照されたセルの中身と入れ替えることは可能でしょうか
例えば
A1[IF(〇)] A2[IF(×)] A3[IF(△)] のとき、
[SUM(A1:A3)] から、 [SUM(IF(〇),IF(×),IF(△))] のように変換したいです
0708名無しさん@そうだ選挙にいこう
垢版 |
2017/12/01(金) 09:44:36.25
あ、本当はもっと数が多いのでできれば「置換で一つ一つコピペ」以外の方法でお願いします
0713名無しさん@そうだ選挙にいこう
垢版 |
2017/12/02(土) 12:09:42.04
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
このスレの過去ログで以前、下に挙げた図のようなプルダウンがVBAなしのExcel2000でもかなり大掛かりな式になるが出来るというのを見かけたんですけど、
(その周辺ログにはその式の書き方までは回答がなかったので)
どういう式を書けば、図のようなプルダウンをVBAなしで再現できるのでしょうか?

このようなプルダウンです
https://imgur.com/a/fXFi9
0714713
垢版 |
2017/12/02(土) 12:19:35.08
ちなみに用意した画像は、家のExcel2010とPhotoshopで大まかなニュアンスだけ伝える為にちゃちゃっと加工して作ったもので、多少おかしいかも知れませんがツッコまないでおいて下さい
再現したいのは会社のExcel2000上です

その時の過去ログには確か「INDIRECT()、OFFSET()、MATCH()を使えばVBAなしの2000で可能」みたいな事が書いてあったんですが…
幾らそれの関数名と多重・多段・プルダウン・ドロップダウン・リスト等で検索しても「こっちじゃない」方(上)のプルダウンの作り方しか引っかからず…
本当に可能なんでしょうか?
0715名無しさん@そうだ選挙にいこう
垢版 |
2017/12/02(土) 12:29:06.79
1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい(初心者)
【4 VBAでの回答の可否】 可
名前の管理やピポットテーブル、VlookUPの等の範囲の指定の際最終行の取得方法のいい方法はないでしょうか?
今は、2000だったり300だったりする範囲でいきそうにない範囲(5000や600)にして範囲から出ないようにしています。
VBAなら最終行の取得方法はわかるのですが普通の関数で同応用したらいいかわかりません。
0716名無しさん@そうだ選挙にいこう
垢版 |
2017/12/02(土) 13:02:48.96
>>713
できますよ。
それは絞り込み検索といいます。
入力規則で絞り込みリストを作成するには(INDIRECT関数)
で検索下ください。
自分もまだ詳しくないので2つの絞り込みまでしかしてません。
3つ以上もできるといえばできるのですがかなりまどろっこしいです。
そこまで絞り込みしても逆にくどくなると思ってそこまでしていません
0717713
垢版 |
2017/12/02(土) 13:46:29.68
>>716
ご回答ありがとうございます、ですが、
絞り込み検索 Excel
絞り込み検索 Excel Indirectで検索したのですが、
やっぱり、上の「こうじゃないリスト」の作り方しか出てこないのですが…
「3セル使って3回の入力で絞込みをして、最後に結果が出る」は「こうじゃない」です

「1セルをクリックしたら選択肢が出て、その選択肢の1つにカーソルを近づけるだけで右の絞込み選択肢が出て、右の選択肢もカーソルを近づけるだけで3つめの更に絞り込んだ選択肢が出て、最後にクリック1回だけで選択完了」というリストが必要なのですが…

具体的には、「InternetExplorerの歯車ボタンを押した後、印刷・ファイル・拡大・セーフティにカーソルを近づけるだけで、次のメニュー、印刷なら印刷・印刷プレビュー・ページ設定から選べる」みたいなそういうのです
0718名無しさん@そうだ選挙にいこう
垢版 |
2017/12/02(土) 14:07:19.52
それだと、VBAじゃないとできないと思います。
0719713
垢版 |
2017/12/02(土) 14:34:36.58
>>718
ありがとうございます
すっきりしました
VBA嫌いの上司に「VBAなしでは無理です」とはっきり言ってやる事が出来ます
0721名無しさん@そうだ選挙にいこう
垢版 |
2017/12/03(日) 07:48:14.42
>>719
VBAのユーザーフォームでなら出来るかもしれないけど開発はとっても大変、よくわからないけど下手すりゃ出来ない。
多分、その上司インターネットかなんかで見たんだろうけどそれはエクセルVBA以外の開発言語でプログラマがひとつひとつ頑張って作った結果です。
使ってる方は簡単かもしれないですけどね。
0730名無しさん@そうだ選挙にいこう
垢版 |
2017/12/03(日) 10:30:14.22
ごめん。回答者がVBAで質問してみた。
でも、その上司きっとエクセルでVBAで最初にでるコンテンツの有効化を出すのも嫌なんだろ?
きっとさ。
で、その上司のしたことってリストの絞り込みじゃなくて、リストを表示しつつ項目ごとにマウスを合わせる
たびにその下層のリストが表示されマウスのクリック操作を一度でできるようにしろっていう事だろ。
それもVBAなしで、
で私の知識とインターネットの検索でいえばなかったけどできるの?
VBAなしって事はフォームコントロールもアクティブコントロールも使用しない感じだけど
ハイパーリンクでも使うの?
ってかそれなんか仕様が変わった時質問主が設定変更できる代物?
0732名無しさん@そうだ選挙にいこう
垢版 |
2017/12/03(日) 12:58:39.65
先ほど名前の管理の範囲を決めるために質問したのですがプルタウン機能を使い
=INDIRECT($I$11)などで絞り込み検索をした所絞り込みがなくなってしまいました。
なぜでしょうか?
範囲の可変はうまくいったのに今度は絞り込みがうまくいかなくなりました。
0733名無しさん@そうだ選挙にいこう
垢版 |
2017/12/04(月) 19:50:48.47
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セル内に-1,1と入力したいのですが-11にしろというエラー文がでます。
"-1,1"とせずに、-1,1を入力する手段を教えてください。
0735名無しさん@そうだ選挙にいこう
垢版 |
2017/12/04(月) 20:18:18.36
>>734
ありがとうございます。
0736名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 00:53:33.19
1行に1列から10列ある状態で、
6列から10列までをカットして、2行目に挿入して貼り付けたいんだけど、それを参照していたリンクが切れたりしないかなあ?うまいやり方ある?
0737名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 04:35:59.68
Excel初心者です。
訳あって印刷業者に発注するためのデータを作成することになりました。手元にある物をExcelで入力してそれをpdfに変換して印刷をお願いする形です。元がA6サイズの物でそのまま原寸大で印刷を依頼します。
0738名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 04:36:30.21
出来ればそれを4面付けの状態で依頼して節約を考えているのですが、作成したデータを用紙設定でA6に印刷するのは簡単だと思うのですが、4面付けっぽく作成した場合に印刷を依頼してサイズ感とかおかしくならないでしょうか?入力したデータは35-Mまで入力しています。
0739名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 06:56:01.67
>>736
vbaかキーボードマクロ

>>738
ずれていないpdfを作るのは難しいと思う
pdfでおかしくなければ大丈夫
あとエクセルのバージョンとか変わるとすぐにずれるのでそこは覚悟しておいたほうがいい
0742sage
垢版 |
2017/12/06(水) 19:04:34.95
8000枚をきれいにカットする手間を考えたらa6で入稿したほうがいいと思います
0744名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 20:01:17.78
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

VLOOKUPからINDEX関数・MATCH関数に書き換えたいのですが、別ファイルを閉じると「#REF!」となってしまいます。
VLOOKUPの方だと別ファイルを閉じていても問題ないのですが、どう変えれば良いんでしょうか?

=VLOOKUP(A1,'D:\パス\[リスト.xlsx]sheet1'!$A$1:$I$65536,5,FALSE)

=INDEX('D:\パス\リスト.xlsx'!マスタ[住所],MATCH(A1,'D:\パス\リスト.xlsx'!マスタ[得意先名],0))
0747名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 21:43:59.55
あとA6サイズで作りたいのですが作ってるものがA6に収まってるのかわからないので、シート上でA6サイズの目安のような表示を出すこと出来ませんか?

Excel2016を使っています
0752名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 23:25:34.96
諦めたほうがいいと思う。
0753名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 23:28:02.41
>>749
選択できる用紙サイズはプリンター依存
Excelのバージョンは無関係

A6対応のプリンターのドライバが入ってて、それが「通常使うプリンター」になっていればExcelでもA6が選べるようになる
とりあえずCubePDF入れとけ
0754名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 23:42:12.34
>>753
たまたまそのソフトは入っていたので起動したところ、小さい四角のウィンドウが出てきてそこにpdfファイルを運んだら、画像が含まれませんみたいなことが表示されてそのまま何も起こらずで…
0755名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 23:45:45.51
>>754
CubePDFは仮想プリンタドライバなので、単独で起動してもしょうがないんだが。。。
入ってるのは本当にCubePDF、の最新版か?プリンターの一覧に出てるか?
0756名無しさん@そうだ選挙にいこう
垢版 |
2017/12/06(水) 23:51:21.79
>>755
親切にありがとうございます…

ちょっと外出しなければいけないので終わり次第確認して試してみます…


後ほどお礼とは呼べないかもしれませんが、amazonギフト券などでお手数をおかけした分を気持ちでお渡しいたします…
0763名無しさん@そうだ選挙にいこう
垢版 |
2017/12/07(木) 15:12:27.58
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
エクセルの入力規則の絞り込みについて
現在入力規則の絞り込みの機能をINDIRECT関数を利用しているのですが
名前の管理の範囲の指定を可変にすると絞り込み機能が使えなくなってしまいます。
名前の管理を見てみると値の入力が空白になり、ネットを見てみるとINDIRECT関数は
範囲の可変は対応してないみたいです。
範囲を可変しても絞り込みの簡単なほうほうありませんか?
0764名無しさん@そうだ選挙にいこう
垢版 |
2017/12/07(木) 16:55:43.90
【1 OSの種類         .】Windows8.1
【2 Excelのバージョン   】Excel2010
【3 VBAが使えるか    .】可
【4 VBAでの回答の可否】可

VBAの編集画面でパスワード設定をすると全てのマクロに対してかかってしまいます。
これをマクロ単位で設定するにはどうしたら良いでしょうか。
0766名無しさん@そうだ選挙にいこう
垢版 |
2017/12/08(金) 00:17:14.65
excelで作った表をwordに図として貼るってVBAでやろうとするにはお勧めしないですか?
どんなことをfixさせなきゃいけないのか、どんなことは自由なのかわかってないです

それよりもexcelの表とwordの表がリンクさせる方が重要ですか?

今の仕事の仕方としては、パートの人にひたすらエクセルの表をwordに図として貼り付けてもらっています
計算をやり直しするたびに貼り直しさせてるんですが、リンクさせられるのか、よくわからないので…。
0767名無しさん@そうだ選挙にいこう
垢版 |
2017/12/08(金) 00:26:07.43
>>766
最終的に何をさせるかが決まっていないと何とも言えない
なぜwordに貼り付けるのか。恐らく印刷がずれるというのが理由と思うが、えくせるのままpdfじゃだめなのかと思う
とにかく最終型を知りたい
0768名無しさん@そうだ選挙にいこう
垢版 |
2017/12/08(金) 01:24:29.43
>>767
wordで作成している書類の中に計算結果を貼り付けたいからです。
計算は条件が変わると再計算の必要があり、再度貼り直しになります。
定型的な書類なので、決まったブック名の決まったシートの決まった範囲の表を貼ります。
0769766
垢版 |
2017/12/08(金) 01:36:25.05
>>767
答え忘れました
エクセルのままpdfではダメなのか
→ダメです。wordで文章を書いて、その中で表を貼るので。エクセルで文章を作れ、というのは不可です。10個程度のファイルに分かれてますが、合計すると1000ページぐらいあるので。
0770766
垢版 |
2017/12/08(金) 01:48:56.33
>>766
後出しで申し訳ないですが、
ネットワークサーバー上にあるファイルになります。
excelとwordをリンクで共有したい
excelの表をwordに自動で貼り付けさせたい(修正で貼り付け直しが必要になる)

これが条件になります。
リンク可能なら最初の1回貼れば自動で貼り付けさせる必要はなさそうです。
ネットワークサーバー上にあるファイルでリンクさせると移動した時に切れてしまう?
対応策をお願いします
0772名無しさん@そうだ選挙にいこう
垢版 |
2017/12/08(金) 07:16:26.30
>>769
>エクセルで文章を作れ、というのは不可です。10個程度のファイルに分かれてますが、合計すると1000ページぐらいあるので。
1000ページあるから駄目の意味がわからない
1000ページエクセルに持たせればいいだけでは
0773766
垢版 |
2017/12/08(金) 08:50:40.97
>>772
エクセルは、文書ソフトとしての機能が貧弱なので、使えません。
0774名無しさん@そうだ選挙にいこう
垢版 |
2017/12/09(土) 03:02:18.02
>>761
ありがとうございます。
凄く心に響くお言葉をこんなところでいただけるとは。


>>262
設定通りやってみたら枠の中に収まりました!



あとはこの作ったデータをpdfにして4面付けにすればいいんでしょうが…ここからは画像編集ソフトのほうがいいのでしょうか?
0775名無しさん@そうだ選挙にいこう
垢版 |
2017/12/09(土) 04:59:05.41
>>774
そのままExcelのシート上でコピペして4ページに増やした方が仕上がりが綺麗になる
隣のページの印刷がずれたら余白の右と下を0.1ずつ増やしてみながら調整していく
0776名無しさん@そうだ選挙にいこう
垢版 |
2017/12/09(土) 05:19:49.84
>>775
ラクスルに問い合わせたところ、入稿は完成した状態のデータじゃないといけないようで、さらにExcelデータは対応してないと言われている状態で…
0778名無しさん@そうだ選挙にいこう
垢版 |
2017/12/09(土) 15:20:37.23
>>766,770
Wordの差し込み印刷でExcelファイルをデータソースにするのはできる?
Excelの方は一行にWord印刷分のデータを列方向に並べておく必要はあるけど
会社で測定値付き検品票を発行するのに使ってる
詳しい話はWordの話題になってしまうな
0779766
垢版 |
2017/12/09(土) 15:49:08.24
>>778
今回差し込み印刷は出来ないと思います
表を1行にするとあまりに見づらく、てエクセルで検討したものをwordで出力しないと結果を効率よく確認できないという事態になるので。

以前、excelの住所録を使ってwordで差し込み印刷をつかい、招待状を作成したことはあるので、言っていることはわかります。
0780名無しさん@そうだ選挙にいこう
垢版 |
2017/12/09(土) 17:21:57.82
ワシだったら、文章担当の人に文をWordで書いて貰って、表入りのExcelシートにWordの文を転記させる方法を考えるだろうなー。
文章の概要が分からない以上なんとも言えんけど。
0781名無しさん@そうだ選挙にいこう
垢版 |
2017/12/09(土) 17:31:58.55
>>779
各Excelファイルでシートを1行にまとめる参照シートを用意するのはどうだろう
表がシート内で定位置なら参照シートのA列にデータのあるシート名を書いて
B列以降にINDIRECT($A2&"!データ位置")とか書くの
表がシート内に複数あるならB列に位置を書いてOFFSETも使うとか
入力欄が不定形ならお手上げだが
思いついたのはここまでかな
0782766
垢版 |
2017/12/09(土) 17:39:33.12
>>780

〜の検討をする。

したがって問題ない。

こんな形でいろんな検討をしています。
文書量としては約1000ページ分です。表は100程度です。

ご提案は、エクセルで文書の体裁まで整えて作る=いわゆるエクセル方眼紙のことを言っていますか?
結論、エクセル方眼紙にするのは、NOです。一般的なエクセル方眼紙を嫌う理由と同じです。
0783766
垢版 |
2017/12/09(土) 17:43:42.26
>>781
それは試してみるのは1つの手ですね。

一回貼るのは我慢するから、差し変える時は自動でやってくれよというのが主旨なんです

ファイルのディレクトリを動かすと、リンク切れてダメだとかそういう問題もあって、同じようなの悩んでる人いないかなあと思ったのですが…
0787766
垢版 |
2017/12/09(土) 21:58:56.22
>>784
vbaでどうやれば解決するかサンプル教えてもらえないでしょうか。
0788名無しさん@そうだ選挙にいこう
垢版 |
2017/12/09(土) 21:59:37.94
>>785
モリサワ
0789名無しさん@そうだ選挙にいこう
垢版 |
2017/12/09(土) 22:00:20.72
>>787
>excelで作った表をwordに図として貼る
をコードにするだけ
結構難易度高いからサンプルちょっと改変してどうこうは考えないほうがいい
0790766
垢版 |
2017/12/09(土) 22:03:25.06
>>789
既存の図を削除し、
「指定のページ」に、
指定の大きさで、
図として貼り付ける
ってのは難しいと思ってるんですよね。
本当にvbaでその辺が柔軟に対応できるのなら、業者にお金払って書いてもらおうかと思います。

今の所派遣さんが3〜4時間かけてやってもらってる内容なので費用削減になればいいなあ
0791名無しさん@そうだ選挙にいこう
垢版 |
2017/12/09(土) 22:06:29.79
>>790
楽勝すぎて眠い
まぁどう考えても払って作らせるほうが楽で安くて確実なので絶対にやったほうがいいだろう
発注する時は仕様だけはきっちり決めておけよ
0792766
垢版 |
2017/12/09(土) 22:16:34.48
>>791

図として貼り付ける案の時は外注します。
このエクセル、このワードでこうしたいって具体的にかっちり決まってるから大丈夫だとは思いますよ

素人目には、ページは動的に変わってくし、削除して差し替えたいグラフのページがズレてても捕まえられるんだろうか普通に疑問だけど…
0793名無しさん@そうだ選挙にいこう
垢版 |
2017/12/10(日) 04:40:16.97
>>777
とりあえず4面付けは出来たと思います!
ただ>>762様に教えていただいた設定で4面付けにするとピッタリサイズなので印刷したら余白がほぼないのでカットしにくいのかな…と悩んでいます。


現在プリンターを持っていないため印刷業者に依頼を考えている感じなので印刷して確かめることも出来ず…
0794名無しさん@そうだ選挙にいこう
垢版 |
2017/12/10(日) 05:06:42.43
>>793
CubePDFでPDFを作って、そのPDFを開いて見ると印刷した時の状態そのものが分かる
A4サイズのPDFなら、プリンターを持ってなくてもコンビニのコピー機で印刷できる
余白が足りなければセルのサイズを0.2ずつ減らして表をもうちょっと小さくすればいい
0795名無しさん@そうだ選挙にいこう
垢版 |
2017/12/10(日) 09:12:56.21
>>793
コンビニプリントでもすればいいんじゃないか
USBに入れるか、ネット経由でプリントアウトできるぞ
ってかプリンタはジモティー辺りで、直接引き渡しならタダなんてのがあるから探すといいと思う
0796名無しさん@そうだ選挙にいこう
垢版 |
2017/12/10(日) 11:44:12.66
Ver.Excel2013

テーブルを作成し、
A列:名前
B列:重複した名前が何個目かを参照する為の関数「countif($A$2:A2,A2)」
C列以降:その他データ(直接関数には関係しない情報類)

といったシートで、テーブル外のセルにテーブル内の一番下のセルを参照すべく
以下の関数を組んでみたのですが、一番下のセルを参照してくれません。
=indirect("A"&countA(A;A))
=index(A:A,countA(A:A))
重複するセルがある中で一番下のセルを参照するにはどうすれば良いでしょうか?
0797名無しさん@そうだ選挙にいこう
垢版 |
2017/12/10(日) 13:54:33.86
>>763
参照するデータ段階で縛り混むのはどうだろう?

しぼりこんたものを
0800名無しさん@そうだ選挙にいこう
垢版 |
2017/12/10(日) 19:52:25.88
>>796
C列に計算列を割り込んでC2に=IF(B2>1,MAX(C$1:C1)+1,"")を入れてフィルハンドルで式をコピー
結果を表示させたいセルに=INDEX(A:A,MATCH(MAX(C:C),C:C))を入れればおk
0801名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 01:13:47.23
空欄セルを参照するも#n/aになって、
入力すると、計算結果が表れるとき、
#n/aだと見た目悪いから、
if 空欄なら""ってしてるんだけど他にいい方法ないかな
0802名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 01:39:17.88
>>801
iferrorもあるが計算をさせてから上書きで変更するからifで先に弾いたほうが合理的
0804名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 02:14:32.94
>>803
if(A1="","",●●●●)→A1が空だったから後の計算は見ない
iferror(●●●●,"")→計算した結果がエラーだったから最終的に空にする
0805名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 02:16:38.61
A6の勘定書で手ほどきを受けている者です。


先ほど確認したらところA6ではなく、B6の間違いでした…。
申し訳ない…。
期限が迫っているので焦っている上に間違えてやっていて最悪です…。

お手数ですが、B6で作る場合の>>762様のような設定を教えていただけないでしょうか。
何度もスレ汚し申し訳ないです。
0808名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 05:44:45.10
B6用のデータを作り、B4用に単純にコピーして貼り付けると二枚分がガッツリとくっ付いてしまってカットする時に大変なのかなと思って1行分空けるという勝手なことをしてしまいましたがどうでしょうか?


それともくっ付いたままでも印刷される時は問題ないのでしょうか?
0810名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 07:36:30.08
>>809
くっついた方の画像がないとわからない
0811名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 08:39:28.87
>>798
>>799
>>800
一番下に入力したデータが重複している場合に
過去のそれぞれのデータの情報を参照できるようにしたくてお聞きいたしました。
無事解決いたしましたので、ありがとうございました。
0815名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 20:50:52.49
IFERRORは初心者には有り難い機能だと思う
何か知らんが変な文字が出て困った? って時の特効薬
エラー原因を調べる必要が無いのは考え物だけどw
0816名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 20:53:49.71
あとはエラー回避を空白にした時の、本当の空白と文字列としての(だっけ?)空白の違いの存在をわかってれば大丈夫だな
0822名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 23:01:52.33
大前提のB6を基準として、その状態で上下左右に5ミリの余白が必要なら
B4レベルでは中央に縦横1pの空白が無いとダメだろ そのど真ん中を断ち切る訳だから
まぁ、本人プリンタすら持ってないようだから、モニターに定規当てて測るしか無さそうだが

で、いっくらキチンと作り上げてもプリンタ次第では必ずズレる プリントアウトの一枚目と十枚目を
抜き出して重ねて透かして見れば一目瞭然 
所詮ローカルオフィス用途のプリンタならやむを得ない 紙吸入、紙送り時点で微妙にズレるんだから
閉店間近の店だし、そんなに精密さを要求されないなら適当でいいだろう

つうか、印刷してくれるトコに聞け 「これでいいか?」ってだけだろ カットはどっちがやるんだ?
0824名無しさん@そうだ選挙にいこう
垢版 |
2017/12/11(月) 23:35:07.22
B6 8,000枚と、B4 2,000枚でそんなに単価違うのか? B6で要求したくない程に?
っつって、今見たら殆ど一緒じゃねーか 切る手間無駄だからB6で発注しとけ
0825名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 00:13:30.19
>>813
いや、何でエラーかわかんねえけどとりあえず空白ってのは困る。
空白だから、空白にしとく、っていうシンプルなルールにしとかないと変な変数で計算されてると困る。
のでifで弾きます
0827名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 01:37:05.35
>>826
え、頭硬いとか言っちゃうの?あなたの管理がずぼらなだけでは。どんなときにどんな挙動をさせるかきちんと決めてないと、入力オカシイのに結果はそれっぽいみたいな最悪の事態が起きる
0829名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 02:04:01.09
>>824
閉店間際のものなのであまり経費をかけるわけにはいかなく…


色々考えてみたのですが、A判?の方が安いようなのでB6のデータをA4に2面付けしてもらうのが安そうなので、それで依頼しようかなと考えています。
0831名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 06:35:26.70
なんでもかんでもiferrorではなく、適宜使えば便利だということをわからない残念なやつなんだな
お前はiferror一生使用禁止ぃー
0832名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 06:47:49.39
だいたい意味不明のエラーなんかにiferrorは使わずまずはエラー回避しないでやってみる
その後単に単なる割り算のdivだとかvlookupのn/aだとかわかってるところで使う
もちろんエラーを削除したいところでは使わない
そんな利便性に目を向けずに全部にif組んでる人は悪いけど今まで実務で遭ったことはない
だいたいエラーわざわざ出させるかiferror入れとくかどっちか
ま、一生使用禁止wみたいだから関係ないかww
0833名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 06:51:09.34
10箇所の別ファイルからvlookupとかやらない人なんだろ
単発Vlookuoとかしかしない簡単な業務で良かったね
それか10ファイルカラムの並びが違うのにせこせこと1枚のシートに貼り付け作業に時間かけてる無能さんとか
0835名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 07:01:28.76
>>833
iferrorは単にエラーを空白にしてなかったことにする、だけの機能じゃないのにねってことだよね
「頭堅い」でいいんじゃないのかな、そこらへんがわからない人は
0837名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 08:29:34.88
>>832
こういう人ならいいけど、えいやでやっちゃう人がいるからやめてくれって言ってるんだよね
思考停止でやって使い分けてくれない人も多い
はいどうぞと渡された物には、どんなエラーが潜んでるか全くわかんないしさ
0838名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 11:16:38.49
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

下のようなリストがあったとして
    A     B     C
1  りんご  みかん  ぶどう 
2  ぶどう  いちご  メロン
3  みかん  いちご  りんご
4  バナナ  みかん  メロン
5  キウイ  ぶどう  いちご

りんご
ぶどう
みかん
バナナ
キウイ
いちご
メロン
と言うように重複なしのリストを作りたいのですがどうすればいいでしょうか?実際は8列×2万行近くあります。
他の関数との連携のため、メニューからの操作ではなく関数で出す方法を教えてください。
0839名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 12:18:00.47
ExcelVBAについて質問です。
ベーシックの資格を取得しようと思うのですが、Excelのバージョンによって仕様は変わりますか?
0840名無し
垢版 |
2017/12/12(火) 12:24:15.46
>>839
エクセルは少しづつ変化しているが、VBAは全く同じ仕様
0841838
垢版 |
2017/12/12(火) 12:26:13.20
あと下記の果物については「ひらがな」と「カタカナ」の表記の乱れがあります。これらは同一として扱うにはどうしたらいいでしょうか?

りんご リンゴ
いちご イチゴ
ばなな バナナ
0845838
垢版 |
2017/12/12(火) 14:04:49.94
>>844
ピボットならどうやって複数列をまとめて一列にリスト化できますか?
0846名無し
垢版 |
2017/12/12(火) 14:59:18.56
仮に関数で処理できたとしてもすごく重くなりそうな予感
0847838
垢版 |
2017/12/12(火) 15:04:29.08
ピボットのセル座標指定でやったら連携してできました。
ありがとうございました。
0848名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 15:25:39.31
AまたはB、C、Dの場合○
EまたはF、G、Hの場合△
IまたはJ、K、Lの場合×と表示させる

という関数はどうするのでしょうか?
IF関数を自力で書いたら条件云々で
弾かれてしまいした。
よろしくお願いします
0850名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 16:13:35.29
>>848
A ○
B ○
C ○
D ○
E △
F △
G △
H △
I ×
J ×
K ×
L ×
という表をどこかにおいて
=index(表の記号列,match(判定するアルファベットのセル,表のアルファベット列,0))
でおk
0851名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 17:39:12.30
大先生方の知恵を貸してほしいんだがここで聞いていいの?
0854名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 21:52:25.01
>>848
基本に立ち返ってみる
IFをネストして描きたかったのはこういうことだと思うんだけどどうだろ?
=IF(OR(A1="A",A1="B",A1="C",A1="D"),"○",
IF(OR(A1="E",A1="F",A1="G",A1="H"),"△",
IF(OR(A1="I",A1="J",A1="K",A1="L"),"×")))
(A列に検査値のアルファベットが入っているとする)

かなり短めに色々駆使して描いてくれてる式もあるけれど、
まずはこれを書けるようになるというのも練習としては大事かもしれない(あほみたいに長いけど)
それから上に書いてくれてるやつに進むのでもいいかもね
0855名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 22:06:17.47
>>848
もういっちょ、アホみたいなやつ
けど基本に忠実
LOOKUPと配列を使う
=LOOKUP(A1,{"A","B","C","D","E","F","G","H","I","J","K","L"},
{"○","○","○","○","△","△","△","△","×","×","×","×"})
0857名無しさん@そうだ選挙にいこう
垢版 |
2017/12/12(火) 23:57:46.19
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

お願いします
B列でテキストデータが表示されているセル数をカウントしたいのですがうまくいきません
=COUNTA(B:B)-1だと関数結果が=""のセルもカウント対象になってしまいます
=COUNTIF(B:B,"*")-1でも同じです
1文字以上のテキストがあるセルのみカウントする関数ってないんでしょうか

※B1には見出しのテキストが入っているのでそれぞれ↑の式では-1をつけています
0858名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 01:04:17.00
飛び飛びのセルをコピーしてその相対位置どおりにペーストする方法ってありますか?
0860名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 03:00:38.15
>>850-856
ありがとうございます!トライしてみます

このスレっていつもこんなに丁寧、熱心に
レスしてくれるの?2ちゃんとは思えない…
0863名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 07:07:28.94
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

ご教授お願いします。
下記のようなデータがあります。

120 190 230
100 200 100
110 230 120 A 230 ←これ
130 210 110
200 220 130
310 110 120 A 220 ←これ
210 110 150
280 270 120
310 250 110 A 270 ←これ

A列からC列に数値のデータがあり、
指定した時刻が来るとD列Aと出ます。
このD列にA,が出たら
その行のE列に次のAが出るまでのB列の最大値が抽出できるように
したいです。
オフセット関数で間違えないと思いますが、
どうやっても作れないです。

よろしくお願いします。
長文になってすみませんでした。
0865863
垢版 |
2017/12/13(水) 07:44:36.33
>>864
皆さんマクロなら簡単だって言うのですが、
当方使えなくて。
Excelでできるのは上級レベルじゃないと無理らしいです。
0866名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 07:47:08.44
>>863
offset関数とlarge関数と補助計算列を使うしかないだろうねえ
0867名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 07:50:24.21
>>857
=(COUNTIF(B:B,">?")-1)
0868名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 08:27:49.42
>>863
とりあえず4つほど聞いてから考えたい

【1】同じシート内のどこかや、別シートに作業列を作ってもいいのか

>指定した時刻が来るとD列Aと出ます。

【2】そもそも時刻はどこかの列に書いてあるのか?(毎行どこかの列に時刻が書いてあるの?)
【3】W指定した時刻Wはどこにどう指定されているのか?
※もしWA"まではすでに出ている状態なら、そう書いて欲しい

>このD列にA,が出たら
>その行のE列に次のAが出るまでのB列の最大値が抽出できるようにしたいです。

【4】最後にAが出た行のE列には何も表示させなくていいのか?
0869863
垢版 |
2017/12/13(水) 08:45:57.60
>>868
ご質問ありがとうございます。
@
同じシート内でお願いします。作業列は作ってもいいです。

A
本来AからIGくらいまで列があり
時刻は別の列で計算して毎回出ています。
質問するので重要と思うところのみを掲載している形です。

3?
1分ごとに締め切ってその数値がABC列に出ていると判断してください。
別列の作業列で締め切りサイン(合計が一定基準を超えたらサインが出る)
が出たらAが表示されるようになっています。

C
Aが表示された行のみE列に最大値を表示されて
あとは表示させなくてOKです。

よろしくお願いします。
0870名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 09:16:28.09
>>863
>120 190 230
>100 200 100
>110 230 120 A 230 ←これ
>130 210 110
>200 220 130
>310 110 120 A 220 ←これ
>210 110 150
>280 270 120
>310 250 110 A 270 ←これ

>このD列にA,が出たら
>その行のE列に次のAが出るまでのB列の最大値が抽出できるようにしたいです。

ごめん、もういっこ確認。
これさ、この例を見る限り「【次のAが出るまで】の【B列の最大値】」ならE列に出るのは
230 次のAが出るまで=5行目までのB最大値
270 =8行目までのB最大値
270 =9行目までのB最大値(次のAでてないけど)
じゃない?

「【前のAの次行のB】から【その行のB】までの間での最大値」
の間違い?どっち?
0871863
垢版 |
2017/12/13(水) 09:50:21.88
>>870
120 190 230
100 200 100
110 230 120 A 230 ←ここまでの最大値
130 210 110 ←ここから
200 220 130
310 110 120 A 220 ←ここまでの最大値
210 110 150 ←ここから
280 270 120
310 250 110 A 270 ←ここまでの最大値

Aが出たらそこまでの最大値で次の行からは1からスタートになります。
こんな感じですが分かりますか?
0872名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 14:44:09.15
名前を付けて保存する際
最近使った“アイテム”が
今週〜,先週〜,しばらく前,という順番で使用履歴の各ファイル名が表示されます。

これを表示させない設定を教えてください。
よろしくお願いいたします。


スペック

OS=Win10
Excel2016
Officeバージョン=1710

※最初間違えてVBA板で聞いてしまいました。
0873名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 17:20:38.00
>>871
ごめん、久々にPC付けたらモニタがNoSignal吐いちゃって放電してたら遅くなったw
そしてうちはExcel2010しかないので、それより後の新関数は詳しくないのでご容赦を。

あ、ちなみにindirectのほうが簡単そうだからそっち使っちゃったけどいい?
OFFSETのほうがお好みだったら組みなおすけど・・・

■前提
・作業列を仮でII列とする
・D列に空白行がないものとする

▼作業列
II1=1
II2=IF($D1="A",$II1+1,$II1)
 ⇒以下オートフィルコピー

※I1も関数入れておきたいなら、エラーは吐くけどII2に
 『=IF(ROW()=1,1,IF($D1="A",$II1+1,$II1))』で上下コピペでもOK

▼結果列
E1=IF($D1="A",MAX(INDIRECT("$B"&MATCH($II1,$II$1:$II1,0)):$B1),"")
 ⇒以下オートフィルコピー
0874857
垢版 |
2017/12/13(水) 19:27:11.96
>>867
ありがとうございます
これでスッキリ解決です
0875名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 20:02:50.02
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

3種類以上のデータを1つのグラフ(仮に棒グラフ)にする場合で
縦軸→1ヶ月分の日数
横軸データA→5000〜10000の変動値
横軸データB→0〜100の変動値
横軸データC→10〜10.9の変動値
と、それぞれの数値に極端に違いがあり、右側の目盛りを有効にしてもカバーしきれない場合はどうしたらいいのでしょうか
0876名無しさん@そうだ選挙にいこう
垢版 |
2017/12/13(水) 23:29:19.76
入力シートとそれを元に計算するシートがある
結果は計算シート見ないとわからない
NGだったら、入力シート変えて再検討
シート切り替えるのが手間なんだけどいい案ないですか
excel2010です
0878名無しさん@そうだ選挙にいこう
垢版 |
2017/12/14(木) 00:11:35.77
>>877
どうもありがとう
やってみるとウインドウのサイズを自分でいちいち調整しなければならないのだけれど良い方法ないですか、
エクセル2010です

(excel2013なら、1つのブックで1つのウインドウなので、win+矢印キーで拡大できる)
0882名無しさん@そうだ選挙にいこう
垢版 |
2017/12/14(木) 17:11:26.80
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セルの値が、常に0を含む8桁の数値で表示されるようにするにはどうすればいいですか
0883名無し
垢版 |
2017/12/14(木) 17:36:21.56
>>882
セルの書式設定を使う。
表示形式のユーザー定義で00000000と入力するだけ
0884名無しさん@そうだ選挙にいこう
垢版 |
2017/12/14(木) 22:40:28.97
>>882
関連質問
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

表示形式をユーザー定義で 000000 や 00000000 にした後、当該セルの表示形式を見ると
分類がその他になって、ロケールがギリシア語やロシア語になるのですが、仕様ですか?
0885名無しさん@そうだ選挙にいこう
垢版 |
2017/12/14(木) 23:02:06.14
逆に、ロシア語を選んでから表示形式をユーザー定義にすると0000000になる
どういう理由かわからんけど、多分仕様だと思う
0888名無しさん@そうだ選挙にいこう
垢版 |
2017/12/15(金) 08:11:52.15
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
複数の範囲をリレーションしてビポットを組むときにAlt+dpで設定画面を出しています。
これをキー操作ではなく上部のメニューから出す方法を教えてください。
0889名無しさん@そうだ選挙にいこう
垢版 |
2017/12/15(金) 21:01:24.22
すっごい謎で教えて欲しいのだけど、
iferrorとvlookupネストして複数の別ファイルや複数シートを参照する。
通常は別ファイルや別シートを参照の場合、ファイル名やシート名の前後にシングルクォーテーションが勝手につくはずだけど、今日シングルクォーテーションがついてないのを見た。
参照ファイルは全部で7つくらい。
しかも式の内容は全く間違ってないのにデータが引き当たらなかった。
苦肉の策でその引き当たらない式が7つのうち1番最後だったので試しに1番前に持ってきたところで引き当たった。
どなたかこの謎の理由とシングルクォーテーションの仕様について教えてください。

Win10,Excel2016で使用中です。
0890名無しさん@そうだ選挙にいこう
垢版 |
2017/12/15(金) 21:10:32.12
>>889
ちなみに引き当たらないのは7つのうち1つだけ。
そして引き当たらなかったのはシングルクォーテーションがついていた。
シングルクォーテーションがついていない対象ファイルのデータは引き当たっていた。
0891名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 04:42:43.49
>>889
それは仕様です
0895名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 08:30:24.12
>>894
途中送信
別ブックの場合も同様で、基本的には付かないんだが付くのが普通だと思ってるということは、シート名かブック名にスペースなどのシングルクォーテーションで挟まなきゃいけない文字が含まれてるんだろうよ。
引き当たる引き当たらないは、情報がもう少し欲しい。
参照先のブックを開いた状態での話か?再計算をしてはどうか?そして再計算してから保存して閉じて開き直したら治るのでは?
0900名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 09:59:14.69
>>899
よかった
感覚的なもんで判断してたんだけど大筋間違っていなかったようで
あとはアンダーバーも入れず詰めるかだよね
視認性に欠けるけど
ピリオドも自分からは使わない
0901名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 10:10:35.34
あと横入りのついでの質問で悪いのだけど、
毎日増えるファイルのファイル名の頭に西暦なしで4桁で入れるってどうよ!?と抵抗感
そもそもの自分の感覚はファイル名末尾に
「売り上げ_20170316.xlsx」とつける
しかし「0316_売り上げ.xlsx」とファイル名をつけてくる人がいる
もしそれを修正するとこれまた頭に
「update_0316_売り上げ.xlsx」としてくる
自分は「売り上げ_20170316_2.xlsx」とするのが普通、もしくは2じゃなくてreviceとか
西暦なしと頭に追加するの、全力で受け入れられない
0904名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 11:48:22.58
>>901
アホか
最新版は常に
「売り上げ.xlsx」

旧版は
「売り上げ_201703161147830.xlsx」
で、openする度に「./old」に自動で保存するようにしておけば何もせずにすべて解決する
0905名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 12:07:24.60
>>904
アホか、は余計だからやめなさいよ
自信満々に言ってるけど上書き保存してんの?
えードン引き
oldはもちろん作るけどさ
オープンするたび自動保存…?
えー…やだそんなの

>>901
自分も同じだな、末尾増やす
元々そうしてたけど、この本読んで更に腑に落ちた
http://diamond.jp/articles/amp/67199?display=b

>>903
それを何が質問なの?と返すところにセンスのなさを感じる
西暦なしでええのか?って話じゃねーの?
しかもド頭?変なのー
0907名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 12:29:58.35
>>905
センスなし認定でも何でもいいけどさ、
>>901の言いたい事はわかるが、ただ単に自分の考えに同意求めたいだけのように見えたから
内容的にはExcel雑談スレのほうが適切じゃないか?
と思っただけだよ
0909名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 13:11:00.67
>>901
月日ベースをセットにしてまとめるなら「0316売り上げ.xlsx」でいいと思う。
しかし、売り上げをまとめるなら「売り上げ0316.xlsx」や「売り上げ0316update.xlsx」だな。
「3/16のデータを見たい」か「売り上げの流れを見たい」かの考え方の違いでまとめ方は変わってくる。
0910名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 13:12:20.40
>>907
総合相談所スレだからここでいいよ
質問スレじゃないんだから
0912名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 14:46:14.36
質問させてください。以下テンプレです。
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】
ファイル作成に使用することは禁止されていませんが、私に知識がないため使うことができません。
【4 VBAでの回答の可否】可(簡単に使えるものでしょうか)

プルダウンリストの選択肢から回答を選ぶと、次のプルダウンリストに対応する選択肢が表示され、それをさらに選択すると、隣のセルに選択肢に対応した数字が表示されるようにしたいです。
ttps://excel-hack.com/beginner/pulldown-menu-interlock/
http://nonbirihappy.hatenablog.com/entry/2015/09/01/221700

一度切ります。
0913名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 14:46:57.95
続きです。
この辺りのURLを参考に、二つ目のリストのセルをVLOOKUPで参照して対応する数字を表示させることには成功したのですが、小分類に同じ項目がある場合、正しく数字が表示されないことに気付きました。
(上のURLの都道府県の例で言うと、関東地方に東京都がありますが、東北地方にも東京都があって、それぞれの場合で別の数字を表示したいのです。)
どのように修正すれば良いか、教えていただけないでしょうか。
0915名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 15:03:02.14
>>913
ユニークキーにしなければならないから、どこかに作業列を設けて、関東地方の東京都と東北地方の東京都を見分ける
vlookupのキーはA&"東京都"とかB&"東京都"とか何でもいいから
0916名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 15:44:07.01
>>909
>>914
たぶん頭につけた方が見つけやすいという意図だとは思う
並べ替えは末尾でも問題ないことは実証済み
確かにその1回限りで終わりか、推移を取っていくかによって分けるのは正しいと思う
大事なところは、その分別がついてる人が使い分けをするのと、頭に西暦なしでつけることが当たり前の文化としてあり、それを見た人が真似するとか、いきなり変える訳にもいかないので従いしかない状況(自分)はちょっと違うってこと
そしてやはり推移集計系は西暦必要かなぁ
0917名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 17:39:04.67
>>915
ありがとうございます。
VLOOKUPの検索値が小分類の入ったセル、範囲が小分類の列と数字の入った列になっているのですが、これの範囲をユニークキーをつけて見分けるようにするということでしょうか。
今一つ理解が追い付いておりません。よろしければもう少し詳しく教えていただけるとありがたいです。
素人で申し訳ないです。。
0920名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 18:11:41.14
>>918
できない
すでに数年そのファイル名で作られてるところに入ったら今いきなり変えるのは並びの問題があるから
あとさすがにピリオドはうちでも入れてないw
0924名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 18:20:05.05
8桁の数字は見づらい2017.12.16や2016-12-16のほうが見やすくていい
0935名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 20:05:36.01
>>932
ぱっと思い浮かぶのは、ファイル名をvbaで取得し、区切り位置で「.」ピリオドで拡張子とファイル名を分ける時
(ファイル整理など)
他にもファイラーやアプリによってはバグの温床になる可能性がありそう
そんなアホな可能性を考える前に、しょーもない命名規則をやめればいいだけの話だから俺は絶対にピリオドなんて名前に入れない
0937名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 20:40:22.42
>>889だけどシングルクォーテーションはファイル名の中身によるものだってことでわかった。
それぞれ参照先は別部署が作ったものだから何か入ってたのかもしれない。
あと7つ目が引き当たらないのは、ファイルは全部開けたまま計算してた。
再計算は試してない。のでファイル保存して、閉じるも試してない。
順番入れ替えて引き当たったなんて初めてだった。そもそも引き当たらないのも初めてだったけど。
0939名無しさん@そうだ選挙にいこう
垢版 |
2017/12/16(土) 22:42:54.22
書き込みのパスワードを複数ファイルに一括でかけることってマクロじゃないと無理だよね?
0940名無しさん@そうだ選挙にいこう
垢版 |
2017/12/17(日) 10:50:51.89
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

よろしくお願いします。

以下の定型文がセルA1にあるときに、B1に1位の名前(『』内のもの)、C1に1位の得点、D1に2位の名前、E1に2位の得点・・・を格納するには
どのような関数を使えばよいでしょうか。
SEARCH関数やMID関数を組み合わせてみたのですが、複雑になりすぎて組めませんでした。

1位『やまだ』 (+44.4) 2位『田中』 (+11.1) 3位『西田』 (-21.2) 4位『井上』 (-34.3)
0942940
垢版 |
2017/12/17(日) 11:49:36.74
『』と点数のかっこは必ずあります。
0944名無しさん@そうだ選挙にいこう
垢版 |
2017/12/17(日) 12:01:49.75
じゃあその位置が何文字目かを調べることは出来るね
何位まで書き出すのか知らんが、作業列を順位×4列使って『』()の位置を書き出すと判りやすい
構造が悪すぎで面倒だからオレは作らないけど
0945名無しさん@そうだ選挙にいこう
垢版 |
2017/12/17(日) 12:23:00.87
>>940
B1とC1に以下の数式を入れて、E1以降はB1とC1をセットでコピペすればいい

B1=MID($A1,FIND("『",$A1,FIND(COLUMN()/2&"位",$A1))+1,FIND("』",$A1,FIND(COLUMN()/2&"位",$A1))-FIND("『",$A1,FIND(COLUMN()/2&"位",$A1))-1)
C1=MID($A1,FIND("(",$A1,FIND((COLUMN()-1)/2&"位",$A1))+1,FIND(")",$A1,FIND((COLUMN()-1)/2&"位",$A1))-FIND("(",$A1,FIND((COLUMN()-1)/2&"位",$A1))-1)
0952名無しさん@そうだ選挙にいこう
垢版 |
2017/12/17(日) 14:29:43.21
空白の行があるデータを抜きだそうとすると、ctrl+下キー一発ではむりで、二発、3発、4発と空白の行が出るたびにやらなきゃいけないから面倒だなあというぼやき
0957名無しさん@そうだ選挙にいこう
垢版 |
2017/12/17(日) 20:44:00.52
substituteでもっと簡潔にできるねえ
0959名無しさん@そうだ選挙にいこう
垢版 |
2017/12/18(月) 02:01:07.59
大量の行からなるデータのうち一部をコピーして別シートに貼るって作業、みんなならマクロにする?
使いまわせるようなやつがいい
0960名無しさん@そうだ選挙にいこう
垢版 |
2017/12/18(月) 02:28:25.53
>>959
条件がはっきり決まってるなら=やindex,matchでやる
それが100回1000回繰り返すとか短時間で済ませないといけないならマクロにする
0961名無しさん@そうだ選挙にいこう
垢版 |
2017/12/18(月) 04:30:04.91
アンダーバーは半角スペースに置換して

B1=TRIM(MID(SUBSTITUTE($A1,"』","________",COLUMN()/2),FIND("[",SUBSTITUTE($A1,"『","[",COLUMN()/2))+1,9))
C1=TRIM(MID(SUBSTITUTE($A1,")","________",COLUMN()/2),FIND("[",SUBSTITUTE($A1,"(","[",COLUMN()/2))+1,9))
0962名無しさん@そうだ選挙にいこう
垢版 |
2017/12/18(月) 04:51:04.82
すごく微妙な無駄があったんで修正
現代に実在する姓は漢字5文字が最長なので

B1=TRIM(MID(SUBSTITUTE($A1,"』","____",COLUMN()/2),FIND("[",SUBSTITUTE($A1,"『","[",COLUMN()/2))+1,5))
C1=TRIM(MID(SUBSTITUTE($A1,")","____",COLUMN()/2),FIND("[",SUBSTITUTE($A1,"(","[",COLUMN()/2))+1,5))
0963名無しさん@そうだ選挙にいこう
垢版 |
2017/12/18(月) 08:27:09.63
もっといいアルゴリズムがありそうなのに、思いつかないまま些細なことが気になる
カッコの直後はスペースだからもう1個減らしてもいいじゃん

B1=TRIM(MID(SUBSTITUTE($A1,"』","___",COLUMN()/2),FIND("[",SUBSTITUTE($A1,"『","[",COLUMN()/2))+1,5))
C1=TRIM(MID(SUBSTITUTE($A1,")","___",COLUMN()/2),FIND("[",SUBSTITUTE($A1,"(","[",COLUMN()/2))+1,5))
0968名無しさん@そうだ選挙にいこう
垢版 |
2017/12/18(月) 22:03:13.29
excel2013ですが、シートにパスワード保護を掛けて保存しても、excel2003ではパスワード保護が無視されてしまいパスワード無しの保護なってパスワード無しで開けられてしまいます。
昔に誰かがマイクロソフトのフォーラムに質問していた下記の現象と同じなのですが解決方法はないでしょうか?
excel2013は最新のバージョンにしてありますが解決しないです。

https://answers.microsoft.com/ja-jp/office/forum/office_2013_release-excel/excel2013%E3%81%A7%E3%82%BB%E3%83%AB%E3%81%AB/ecb72d8e-c7a3-47ba-a9f0-68094f5c8044
0969名無しさん@そうだ選挙にいこう
垢版 |
2017/12/18(月) 22:12:58.27
>968
仕様です
シートのパスワード保護は見られないためではなく、誤って変更するのを防ぐためにあります。セキュリティはゼロです
0971名無しさん@そうだ選挙にいこう
垢版 |
2017/12/18(月) 23:52:41.82
B1=CONCATENATE(C1,D1)

で、このB1を計算式でなく、文字列データにして保存したいんだけど
どうすりゃいいの

データにしたあと、CとDの列は消去。
0973名無しさん@そうだ選挙にいこう
垢版 |
2017/12/19(火) 00:02:51.56
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

基本的な質問で恐縮ですが、
セルA1〜C5全てに入力したデータがあって、
他のセル(例えばA6)にoffset関数を使って
A1〜C1、A2〜C2というように行毎にAからC列の情報を参照するにはどうすれば良いでしょうか?
[幅]の設定を3にしても指定したセルの情報しか参照してくれません。
0974名無しさん@そうだ選挙にいこう
垢版 |
2017/12/19(火) 00:41:30.00
>>968
エクセルでは無理。
保護をしてもシートコピーとかで簡単に開きます。
0975名無しさん@そうだ選挙にいこう
垢版 |
2017/12/19(火) 00:45:59.21
>>973
仕様です。
計算であれば範囲指定などに使えるがoffset単体でデータの結合は無理。
=offset(hogehogeA)&offset(hogehogeB)&offset(hogehogeC)とか力技で何とかするしかない。
0977名無しさん@そうだ選挙にいこう
垢版 |
2017/12/19(火) 06:43:52.63
>>969
>>974
ありがとうございます。

開けられないためでなくr書かれているように計算式を変更されないためにシート内に
入力するセル(非保護)と計算式が入った結果を表示するセル(保護)を設定して
シートにパスワードの保護を掛けて保存してます。
会社がexcel2003で自宅がexcel2013で、そのデータを自宅に持ち帰りパスワード保護を解除してデータを作り変えたりしてます。
そのデータは主に他の支店でも運用(excel2003)しており、自宅で変更した後にexcel2013でパスワード保護を掛けて他支店に送ってもパスワード保護が無意味で開くことができ困ってました。
(会社のexcel2003で再度パスワード保護を掛けて再配布する手間を掛けております)
仕様なら仕方ないですがバグですよね?
0978名無しさん@そうだ選挙にいこう
垢版 |
2017/12/19(火) 06:49:45.28
excel2003でパスワード保護を掛ければ、excel2013でもパスワード保護が掛かったままで正常の動作なのですが
逆が出来ない(2013でパスワード保護を掛けても、2003で使うとパスワード情報が破棄されている状態)のです。
0979名無しさん@そうだ選挙にいこう
垢版 |
2017/12/19(火) 06:53:27.80
>会社がexcel2003で
まずはここを変えることを提案

>仕様なら仕方ないですがバグですよね?
知らん。とりあえず仕様
サポート終了ってのはそういう事

シートを非表示にしたほうがマシだな
後はvbaにでもするか
0980名無しさん@そうだ選挙にいこう
垢版 |
2017/12/19(火) 07:42:04.13
>>979
vbaにしてもvba自体がvbaでパス解除できるからイタチごっこ
0981名無しさん@そうだ選挙にいこう
垢版 |
2017/12/19(火) 07:59:48.47
>>980
>開けられないためでなくr書かれているように計算式を変更されないために
この目的ならこれで十分
vbaのパス解析してまで触ってくるようなスキルがある奴ならそもそもこんな問題は起こらない

はい、論破
0982名無しさん@そうだ選挙にいこう
垢版 |
2017/12/19(火) 12:10:20.63
>>973,975
一応補足すると、2016からはtextjoin関数が増えてできるようになった。
それに対応するために、同等の動きをするVBAがネットで検索するといくつかヒットする。
ご参考まで。
0983名無しさん@そうだ選挙にいこう
垢版 |
2017/12/19(火) 19:30:56.56
a1に
SH-800×250×14.0×22.0×18
と入力されているものを

b1に800
c1に250
d1に14
e1に22
f1に18
と入力するようにして欲しい
出来ればvbaと数式両方欲しい
0986名無しさん@そうだ選挙にいこう
垢版 |
2017/12/20(水) 00:00:07.27
>>985
VBAじゃないと無理か。VBAが嫌いな上司対応だったのでそれは諦める。

あと懸念事項があって、
800は1000とか4桁になることがある

18は0とか1桁になることがある

こういう風に文字の長さが動的になる。
そういうときどうすりゃいんだろう
0987名無しさん@そうだ選挙にいこう
垢版 |
2017/12/20(水) 00:14:19.57
>>983
B1=MID(A1,4,3)
C1=MID(A1,8,3)
D1=MID(A1,12,2)
E1=MID(A1,17,2)
F1=MID(A1,22,2)
0991名無しさん@そうだ選挙にいこう
垢版 |
2017/12/20(水) 07:42:50.36
>>986
substituteで要らない範囲を全部""で消すのが一番簡単かも
0992名無しさん@そうだ選挙にいこう
垢版 |
2017/12/20(水) 09:37:09.22
でてくる数値が5個固定なら正規表現で決め打ちもできるよ
With CreateObject("VBScript.RegExp")
  .Global = True
  .Pattern = "\d[\.\d]*"
  With .Execute(Range("A1").Value)
    Range("B1:F1").Value = Array(.Item(0), .Item(1), .Item(2), .Item(3), .Item(4))
  End With
End With
0995983
垢版 |
2017/12/21(木) 01:04:15.04
>>983の件忙しくて何もしてないです
書いたらアップします

>>989
とりあえず書いてみてあとでそこ動かせばいいかな的なノリ

>>993
その通りなんだけど、>>983が要望なので丸鋼とかは想定しなくて良い
0997名無しさん@そうだ選挙にいこう
垢版 |
2017/12/21(木) 21:25:47.07
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

エクセルでグループ化しての非表示状態(+と-で表示、非表示を切り替えできるやつ)のときや非表示のときに、
セル範囲選択してコピー&ペーストすると非表示部分までコピー&ペーストされてしまうんですが、表示部分だけコピーして非表示部分はコピーされないようにする方法ってないでしょうか?
0999名無しさん@そうだ選挙にいこう
垢版 |
2017/12/21(木) 22:52:35.21
>>998
ありがとうございます!早速明日会社のエクセルで試してみます!助かりました!
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 80日 3時間 56分 39秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況