X



Excel総合相談所 130
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@そうだ選挙にいこう
垢版 |
2017/12/24(日) 09:11:43.15
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

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

前スレ
Excel総合相談所 129
https://find.5ch.net/search?q=excel

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

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

■前提
・作業列を仮でH〜M列とする
・一つ目のサイズは必ず"-"で始まる
・サイズの区切りは必ず"×"である

▼作業列
H1= FIND("-",$A1)
I1=FIND("×",$A1)
J1=FIND("×",$A1,I1+1)
K1=FIND("×",$A1,J1+1)
L1=FIND("×",$A1,K1+1)
M1=LEN($A1)+1
 ⇒以下オートフィルコピー

※K1、L1はJ1のコピーでOK

▼結果列
B1=MID($A1,H1+1,I1-H1-1)
 ⇒C1〜F1にコピー後、以下オートフィルコピー
0010名無しさん@そうだ選挙にいこう
垢版 |
2017/12/24(日) 17:16:43.21
sum(hogehoge)となってる数式を
round(hogehoge)と中身はそのまま関数かっこのみ置換する方法って正規表現使わないと難しいですか?
置換対象は大量にあります
0011名無しさん@そうだ選挙にいこう
垢版 |
2017/12/24(日) 17:42:58.04
>>10
round()以外なければ楽勝

=sum(1)
「=sum」を「あああ=sum」に変換。これで数式から文字列になる
後はテキトーに変換し
「あああ=sum(」を「=〜ろうんd(」
に置換するだけ

「あああ」は、もちろんなんでもいい
0012名無しさん@そうだ選挙にいこう
垢版 |
2017/12/24(日) 19:00:34.35
>>11
何ステップかになりますね。
かつ中身にさらにsum(、や)がネストされてるとややこしいなぁ
0015名無しさん@そうだ選挙にいこう
垢版 |
2017/12/24(日) 23:16:13.53
前スレでお世話になった伝票作りを助けていただいた者ですが、やはり私にはうまく作れませんでした…


うまく出来てるかコンビニで試しに印刷してみたら
B6のデータの2面付をA4に印刷しようとしたのですが、縦に印刷されてうまくいきませんでした。
0017名無しさん@そうだ選挙にいこう
垢版 |
2017/12/24(日) 23:29:48.44
1 OSの種類 Windows7
2 Excelのバージョン Excel2013(多分)
3 VBAが使えるか 初めたばかりです
4 VBAでの回答の可否 可(是非お願いします!)
5 質問内容
・指定したセルの範囲内で、上のセルの文字が下のセルの文字と同じ場合、下のセルを〃に変換したい。
・指定したセルの範囲内で、上のセルが空白の場合下のセルを幅寄せ?したい。

かつ、上記をマクロでボタン作成して行いたい。


本当に初歩的で丸投げな質問だとは思うのですが、Googleで調べても一致するものが見付からなかったので質問させて頂きました。

条件付き書式?やルール管理、などの方法は見付かるのですが、入力した途端に変換されるのではなく、マクロでボタンを作成し後からワンクリックで変換する方法は分かりませんでした。

もし手順が書いてあるHPなどがあれば教えて頂けましたら幸いです。丸投げで本当に申し訳ありません。
0018名無しさん@そうだ選挙にいこう
垢版 |
2017/12/25(月) 00:34:39.24
>>16
こちらで安いと教えていただいたプリントパックに依頼するつもりなのでなんとかやりたいのですが、年内にやるつもりが結局出来ず…


親孝行としてなんとか完成させたいので引き続きご教授願いたいです…


自分なりに作ったExcelファイルをアップロードすれば分かりやすいでしょうか?
0022名無しさん@そうだ選挙にいこう
垢版 |
2017/12/25(月) 12:00:13.69
>>17
難しくないと思うけど
「指定した範囲」の指定の仕方は?
範囲選択して、ボタンを押すってこと?
あと、幅寄せとは?
セルを削除して上方向にシフトってこと?

あとはその削除したりする列が決まってるのか、複数あるのかでも変わってくる。
0023名無しさん@そうだ選挙にいこう
垢版 |
2017/12/25(月) 14:37:10.25
>>22
ご回答はありがとうございます
「指定した範囲」の指定の仕方は?→
範囲は事前に決まっており、マクロを作成する時に決められればなと思います
あと、幅寄せとは?セルを削除して上方向にシフトってこと?→そうです、上方向にシフトで間違いありません。分かりにくくてすみません
0025名無しさん@そうだ選挙にいこう
垢版 |
2017/12/25(月) 23:04:29.49
>>20
ありがとうございます!
5分で出来てしまうとは…
私も勉強していかないとダメですね…


注文方法も添えていただき感謝です。
希望としては元の勘定書がB6サイズなので最初はB4用紙に4面付する感じのレイアウトが良かったのですが、切るのも大変なのでB6のデータを横向き?にしてA4に2面付が出来ないかなと思ってるのですが難しいものなのでしょうか?
0029名無しさん@そうだ選挙にいこう
垢版 |
2017/12/25(月) 23:55:06.98
>>28
ありがとうございます。

完成品データで入稿しないと受け付けてくれないようなのですが、これで受け付けてもらえるかもしれません。


わざわざ作っていただきありがとうございます。。。
0031名無しさん@そうだ選挙にいこう
垢版 |
2017/12/26(火) 01:57:01.56
>>30
もっとスマートな書き方はいろいろあると思うけど。
範囲は3行目で指定、ここではB1:D15に。
空白の次の行や、一番上の行に「〃」があるのは想定してない。

Sub sample()

Dim myRange As Range
Set myRange = Range("B1:D15")

Dim myRow1 As Long
Dim myRow2 As Long
Dim myCol1 As Integer
Dim myCol2 As Integer
Dim i As Long
Dim j As Long

myRow1 = myRange.Row
myRow2 = myRow1 + myRange.Rows.Count - 1
myCol1 = myRange.Column
myCol2 = myCol1 + myRange.Columns.Count - 1

'@「〃」を元の文字列・数値に戻す。
For i = myRow1 + 1 To myRow2
For j = myCol1 To myCol2
If Cells(i, j) = "〃" Then
Cells(i, j) = Cells(i - 1, j)
End If
Next j
Next i
0032名無しさん@そうだ選挙にいこう
垢版 |
2017/12/26(火) 01:57:31.91
'A空白を削除して上側にシフトする。

For i = myRow2 To myRow1 Step -1
For j = myCol1 To myCol2
If Cells(i, j) = "" Then
Cells(i, j).Delete shift:=xlShiftUp
End If
Next j
Next i

'B上のセルと比較して同じなら「〃」に変更する。
'ただし対象セルが空欄の場合は除く

For i = myRow2 To (myRow1 + 1) Step -1
For j = myCol1 To myCol2
If Cells(i, j) <> "" And (Cells(i, j) = Cells(i - 1, j)) Then
Cells(i, j) = "〃"
End If
Next j
Next i

End
0034名無しさん@そうだ選挙にいこう
垢版 |
2017/12/26(火) 17:08:57.77
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
縦列名前、横列年度の得点表が同じシートに複数個横に連なっているのですが、これを一まとめにはできないでしょうか?

こんな感じの表を
 今年 去年 今年 去年 今年 去年・・・
A 50  59 D 60 65 G 60 65 ・・・
B 78  90 E 35 20 H 35 20 ・・・
C 65  72 F 79 80 I 45 70 ・・・

こうしたいです。
去年 今年
A 50 59
B 78 90
C 65 72
D 60 65
E 35 20
F 79 80
G 60 65
以下略
003534
垢版 |
2017/12/26(火) 17:13:07.37
すいません、半角スペース無視されるの忘れていました

こんな感じの表を
 今年去年 今年去年 今年去年・・・
A 50 59 D 60 65 G 60 65
B 78 90 E 35 20 H 35 20 ・・・
C 65 72 F 79 80 I  45 70 ・・・

こうしたいです。
去年 今年
A 50 59
B 78 90
C 65 72
D 60 65
E 35 20
F 79 80
G 60 65
以下略
003634
垢版 |
2017/12/26(火) 17:14:04.23
2番目の表、去年と今年が逆ですね。スレ汚してしまってすいません
0037名無しさん@そうだ選挙にいこう
垢版 |
2017/12/26(火) 18:52:33.29
>>34
入力シートがSheet1のA1からデータが3行記入されてると仮定して、
出力シートは別途A1〜C1に「_ 今年 去年」があるとして
以下の式を「B2」に入力して、行列共にオートフィル
=OFFSET(Sheet1!A$2,INT(MOD((ROW()-2),3)),INT((ROW()-2)/3)*3,1,1)

もし行数を可変にしたい場合は

ROWS()でカウントさせるか
=OFFSET(Sheet1!A$2,INT(MOD((ROW()-2),ROWS(Sheet1!A$2:A$4))),INT((ROW()-2)/ROWS(Sheet1!A$2:A$4))*3,1,1)
※この場合、運用で行を増やす時1〜3行目の間に挿入する必要がある。

COUNTA()でデータ数をカウントする
=OFFSET(Sheet1!A$2,INT(MOD((ROW()-2),COUNTA(Sheet1!$A:$A))),INT((ROW()-2)/COUNTA(Sheet1!$A:$A))*3,1,1)
※この場合、A列に最大行までデータが埋まっている必要がある。
※余計なデータがA列に含まれていてはならない。
※A1は空欄であること。

色々アプローチ方法が思いつくので、もっと良い数式ありそうな気もする。

ただこれだけは言わせて欲しい。
「数式で処理しやすい入力様式に変えろ」
003934
垢版 |
2017/12/26(火) 20:02:37.83
>>37
できました!有難うございます
0040名無しさん@そうだ選挙にいこう
垢版 |
2017/12/26(火) 20:10:51.16
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

続けての質問ですいません
縦列にA,A,A,A,A,B,B,B,C,C,C,D,D,E,E,E,Eと入力されている時、同じものが4個以上あるものだけをフィルターで抽出するにはそうすればいいのでしょうか?

例の場合だとAとEが4個以上あるのでAとEだけが抽出されるといった感じにしたいです
0042名無しさん@そうだ選挙にいこう
垢版 |
2017/12/28(木) 12:20:23.57
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『加藤のセセエイウノノ』 というサイトで見ることができるらしいです。

グーグル検索⇒『加藤のセセエイウノノ』

73U3V610QF
0044名無しさん@そうだ選挙にいこう
垢版 |
2017/12/29(金) 01:28:05.17
氏名 |上期売上|下期売上|合計|順位|評価
Aさん |
Bさん |
Cさん |
こんな感じの表で評価の列に上期と下期の合計金額が平均以上の人は「合格」以下なら
「不合格」と表示させたとき、Cさんの下のセルに評価が合格と表示される人たちの下期
売上平均金を算出する計算式を求めています。
条件として、新たに計算用のセルを作成したり、別シートに新規作成した計算セルを参照
しないものとすること
0047名無しさん@そうだ選挙にいこう
垢版 |
2017/12/29(金) 08:49:47.74
>>45
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

氏名 |上期売上|下期売上|合計|順位|評価
Aさん |
Bさん |
Cさん |

こんな感じの表で評価の列に上期と下期の合計金額が平均以上の人は「合格」
以下なら「不合格」と表示させたとき、Cさんの下のセルに評価が合格と表示される人たちの
下期売上平均金を算出する計算式を求めよ。
条件として、新たに計算用のセルを作成したり、別シートに新規作成した計算セルを参照
しないものとすること
0049名無しさん@そうだ選挙にいこう
垢版 |
2017/12/29(金) 10:18:34.13
>>48
評価の列に上期と下期の合計金額が平均以上の人は「合格」
以下なら「不合格」と表示させたとき、Cさんの下のセルに評価が合格と表示される人たちの
下期売上平均金を算出する計算式
0052名無しさん@そうだ選挙にいこう
垢版 |
2017/12/29(金) 15:42:52.94
ここは自分でやってみてわからない箇所を聞いて、優しい暇人が教えてあげるスレであって
課題や仕事を丸投げすると答えが無料で返ってくる機械じゃないよ

>>49
文章から察するに何かの課題なんだろうけど
自分で考えてみたけどうまくいかなかった数式とかぐらい書いてみたら?
もし全く分からないなら基礎から勉強し直した方がいい

↓特にこの辺
関数の基本的な使い方
Excelでの等号不等号の記述方法
関数で文字列を条件にする方法
IF
AVERAGE
AVERAGEIFS(2013なら使えると思うけど違ったらごめん)
0053名無しさん@そうだ選挙にいこう
垢版 |
2017/12/29(金) 20:44:02.36
>>52
全くもって分からないんです
どこから手をつけてよいのかも...

イジワルしないで教えて下さいよ
テンプレも付けたじゃないですか
0054名無しさん@そうだ選挙にいこう
垢版 |
2017/12/29(金) 21:05:55.55
>>53
イジワルというが、なんでその課題やってるの?
というか、もし課題ならここで答えだけわかっても意味ないのでは?

勉強し直した方がいいと言われた箇所は
調べたり勉強してみたり何かやったの?
0058名無しさん@そうだ選挙にいこう
垢版 |
2017/12/29(金) 22:38:25.52
>>54
答えだけわかればいいんです
ゴタクはいいからさっさと関数だけ書けや無能が!
0063名無しさん@そうだ選挙にいこう
垢版 |
2017/12/31(日) 00:38:31.91
前スレで既出ならごめんなさい
2年後に新元号になりますが
和暦に関するセルの書式および書式記号について
アップデートか何かで対応されるんでしょうか?
仕事のブックでかなり元号を使っているので不安です
0064名無しさん@そうだ選挙にいこう
垢版 |
2017/12/31(日) 01:53:36.61
CUBE関数系わからない
解説して
0066名無しさん@そうだ選挙にいこう
垢版 |
2017/12/31(日) 10:06:10.00
>>65
(出来れば使ってね)なのに共用するなよ
0069名無しさん@そうだ選挙にいこう
垢版 |
2017/12/31(日) 18:23:44.56
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
2年後に新元号になりますが
和暦に関するセルの書式および書式記号について
アップデートか何かで対応されるんでしょうか?
仕事のブックでかなり元号を使っているので不安です
007163
垢版 |
2017/12/31(日) 21:16:45.45
>>69
>>65の意味がわからずにいたところ、捕捉していただきありがとうございます

>>70
ありがたい情報源です
OfficeだけでなくWindows自体にも影響があるとのこと
ネットにつながっていないPC・サーバーを全て人手で更新するとなると
国中が大パニックになるんじゃないですかね・・・恐ろしいです
0072名無しさん@そうだ選挙にいこう
垢版 |
2017/12/31(日) 21:57:37.75
平成に変わった時だって面倒だったけど全件訪問して全部手作業だったぞ
そも、台数・件数もまるで違うがな そも、Windows ですら無かったがな

単なる「杞憂」って奴だ 気にすんな ハゲるぞ
そういう節目は客先とのコミュニケーションにも繋がるし、いい機会だと捉えてりゃいい
ネガティブ・シンキングからはよ卒業しろ お前ら若い衆が臆病でどうする

つか、そろそろ引退しろ、おれ
0079名無しさん@そうだ選挙にいこう
垢版 |
2018/01/01(月) 21:54:04.14
2007はアドインが追加されそうだけど、2003はどうなるだろう
個人的には、2003はもう対応しないでほしい
というかこの世から消滅してほしい
0083名無しさん@そうだ選挙にいこう
垢版 |
2018/01/02(火) 12:38:49.59
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
A、B、Cという3つの評価があり、A−Cの割り合いの目標値を仮に60%とした時に現在値が目標値を下回った時、後何件Aの評価があれば目標を上回るかを関数で組みたいんですが知恵をかりたいです。

例、A3件、B1件、C1件の時は現在値40%

求めてるのはBとCの件数は増減せずに単純にAの件数のみです
0084名無しさん@そうだ選挙にいこう
垢版 |
2018/01/02(火) 12:44:49.19
>>83
すまん、質問の意味がわからん

>A−Cの割り合いの目標値
何を言っているのかさっぱり分からん

>現在値
現在値とはなにか。またその算出方法

>例、A3件、B1件、C1件の時は現在値40%
これを出した計算式
0085名無しさん@そうだ選挙にいこう
垢版 |
2018/01/02(火) 13:14:17.02
>>84
分かりづらくてスミマセン。A−CはAマイナスCの事です。
例で言うと
A3件で全体5件中の60%、B1件で全体5件中の20%、C1件で全体5件中の20%。
AマイナスCで60%−20%で40%になります。
ネットプロモーターの計算方法になります。
0086名無しさん@そうだ選挙にいこう
垢版 |
2018/01/02(火) 13:22:10.99
>>83,84
  件数 割合
A  3  60%
B  1  20%
C  1  20%
計 5  100%
となるので、60%-20%=40% ってことでしょ?
A評価の件数を変数a、B評価の件数を変数b、C評価の件数をcとすると
a/(a+b+c) - c/(a+b+c) >= 0.4
(a-c)/(a+b+c) >= 0.4
になればいいということですね。bとcの値が固定(現状値)なら一次方程式の考えでいけます。
現状でa=8,b=4,c=3と仮定すると、aだけ変数のままにしておいて
(a-3)/(a+7)>=0.4 両辺に(a+7)をかけて次行の式へ
(a-3)>=0.4*(a+7) 両辺に3を足して次行の式へ
a>=0.4a+2.8+3   両辺から0.4aを引いて次行の式へ
0.6a=>5.8
a=>9.6666666・・・ 整数ならa=10 →現状のa=8には+2が必要
a,b,cの値を入力して、ここまで出す計算式は・・・次の方、どうぞ
008886
垢版 |
2018/01/02(火) 13:56:36.45
>>87
変数のままでもなんとかなりました。
(a-c)/(a+b+c) >= 0.4  両辺に(a+b+c)をかけて次行へ
(a-c) >= 0.4 * (a+b+c) 両辺にcを足して
a >= 0.4 * (a+b+c) + c 両辺から0.4aを引いて
0.6a >= 0.4b + 1.4c   両辺を0.6で割って
a >= (0.4b + 1.4c) / 0.6
>>86にて、項目見出しをA列、件数をB列、割合をC列とし、B2セルから下にA、B、Cの件数を入れ、
D2セルに =ROUNDUP((0.4*B3+1.4*B4)/0.6,0)
って入れると条件を満たすAの最小値が出るので、現状値(B2セル)を引くと「後何件」の数が出ます。
E2セルに =D2-B2 って入れてみてください。
0089名無しさん@そうだ選挙にいこう
垢版 |
2018/01/02(火) 14:03:07.78
二つの表がありA側の表とB側の表に同じキーを持つ項目が入っています。
Aの表のキーの文字列とBの表のキーの文字列が一致した項目の金額の差をBの表の横に表示したいです。

A,Bそれぞれで集計済みで、それぞれの表の中ではキーの重複はありません。

A,Bの行数は一致しませんので、キーが一致しなければ、Bの表の横に”一致なし”と表示したいです。

VBAでも関数でも大丈夫ですので宜しくお願いします。
009285
垢版 |
2018/01/03(水) 11:50:21.64
>>86-88
レス遅れてスミマセン
おかげさまで求めていたものが完璧に出来ました。
ありがとうございます!
0096名無しさん@そうだ選挙にいこう
垢版 |
2018/01/06(土) 13:22:40.85
それで辛いならマルチモニタにするっきゃ無い 二画面でも三画面でもお好きな台数並べ
さもなきゃ好きなだけ縮小するか そういうので使い勝手満足できるなら
0097名無しさん@そうだ選挙にいこう
垢版 |
2018/01/06(土) 13:36:49.45
>>95
・列を減らす
・縮尺を小さくする
・マルチディスプレイにする
・大型ディスプレイに買い替える
・Ctrl+矢印で表の端にジャンプする
・特定の列やセルに名前を付けてCtrl+Gで選択してジャンプする
0100名無しさん@そうだ選挙にいこう
垢版 |
2018/01/06(土) 14:11:00.09
>>93
・アウトラインのグループ化で折りたたんでおく。
・カテゴリーごとにシートを分ける。どうしても一覧で見たいなら別シートでindex,matchを使ってピックアップする。
■ このスレッドは過去ログ倉庫に格納されています

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