皆さんのお知恵をお借りしたいです。宜しくお願いします。
今回、私が解決したい内容は複数のセルに入力された文字を1つのセル内に統合したいのです。
但し、例えば、A1に入力された苗字と、B1に入力された名前を、C1に統合するのであれば出来るのですが、
私の業務では、毎日入荷する商品と、欠品している店舗がそれぞれ異なる為、統合する対象セルの行数が毎日異なるのです。
そこで具体的な例を添付します。
欠品中の店舗は毎日異なるので、例では8行目から20行目となっていますが、これが8行目から10行目の時もありますし、8行目から50行目もしくはそれ以上になる事もあります。
私が理想とする結果はC列になります。
入庫した商品の型番を入力すると、それが欠品している店舗のみをC列のセル内に統合したいです。
エクセルでは無く、Googleスプレッドシートで作業しています。
更に付け加えると、1行目から5行目に関しては、D列より右側のセルは利用できませんが、
7行目以降に関してはC列より右側のセルも利用が可能です。
何卒宜しくお願い致します。
No.1
- 回答日時:
これでできるよ。
【 Google Apps Script 】
function myFunction() {
// スプレッドシートを取得する
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();// Container Bound Script
var sheet = spreadsheet.getSheets()[0];// シート数を指定して取得
var lastRow = sheet.getLastRow();
// 欠品中の店舗を取得する
var records = sheet.getRange(8, 1, lastRow-7, 2).getValues();// 店舗, 型番
// 型番見出しを作成する
var listOfStores = [];// 型番, 店舗一覧
for (var i=0; i < records.length; i++) {
for (var j=0; j < listOfStores.length; j++) {
if (records[i][1] == listOfStores[j][0]) {
break;
}
}
if (j == listOfStores.length) {
listOfStores.push([records[i][1], '']);
}
}
// 店舗一覧を連結する
for (var i=0; i < listOfStores.length; i++) {
for (var j=0; j < records.length; j++) {
if (listOfStores[i][0] == records[j][1]) {
listOfStores[i][1] = listOfStores[i][1] + [',', ''][Number(listOfStores[i][1]=='')] + records[j][0];
}
}
}
// 出力型番を取得する
var models = sheet.getRange(2, 2, 4, 1).getValues();
// 店舗一覧を連結する
for (var i=0; i < models.length; i++) {
for (var j=0; j < listOfStores.length; j++) {
if (models[i][0] == listOfStores[j][0]) {
sheet.getRange(i+2, 3).setValue(listOfStores[j][1]);
}
}
}
}
No.5
- 回答日時:
回答No.1です。
ちなみにスクリプトは自動実行できます。Google Apps Script はクラウド上で実行されるので、トリガーを設定しておけばPCを閉じていても自動で実行されます。1. まずは、以下のURLを開いて自分のプロジェクトを見てみましょう。
https://script.google.com/home
2. 自動実行したいプロジェクトがあれば、右端の「︙」メニューから[トリガー]を選択します。
3. トリガー画面が表示されます。
No.6
- 回答日時:
回答No.1です。
続きです。4. 画面右下の「+トリガーを追加」というボタンを押します。
5. [トリガーを追加]ダイアログが表示されます。
6. ここで「自動実行したい関数」「タイミング等…」を入力して[保存]すれば、設定したタイミングで関数が自動実行されます。
7. 「トリガー管理画面」「プロジェクト管理画面」ともに「︙」メニューの左隣の「ペンマーク」を押下すると編集が可能です。
No.7ベストアンサー
- 回答日時:
補足の件はこれでできると思います。
---
// 在庫切れの店舗リストの書き出し
function outOfStockStoresListExport() {
// スプレッドシートを取得する
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();// Container Bound Script
var sheet = spreadsheet.getSheets()[0];// シート数を指定して取得
var lastRow = sheet.getLastRow();
// 出力型番を取得する
var models = sheet.getRange(20, 3, 55, 1).getValues();// 型番
// 出力店舗リストを作成する1
var storesList = [];// 型番, 店舗一覧
for (var i=0; i < models.length; i++) {
if (models[i][0]=='') {
break;
}
for (var j=0; j < storesList.length; j++) {
if (models[i][0]==storesList[j][0]) {
continue;
}
}
if (j==storesList.length) {
storesList.push([models[i][0], '']);
}
}
// 欠品中の店舗を取得する
var records = sheet.getRange(91, 1, lastRow-90, 5).getValues();// 店舗, '', '', '', 型番
// 出力店舗リストを作成する2
for (var i=0; i < storesList.length; i++) {
for (var j=0; j < records.length; j++) {
if (storesList[i][0]==records[j][4]) {
storesList[i][1] = storesList[i][1] + [',', ''][Number(storesList[i][1]=='')] + records[j][0];
}
}
}
// 出力店舗リストを出力する
for (var i=0; i < storesList.length; i++) {
sheet.getRange(i+20, 1).setValue(storesList[i][1]);
}
}
手とり足とり教えて頂き本当にありがとうございます!
これで永い間苦労してきた事を解決する事が出来ました。
Androさんのおかげです。
Androさんには他人を豊かにする力があると思います!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- Excel(エクセル) Excelで、行に複数の数字が入力されているセルが複数の列存在し、行を跨いでセル内の数値を並び替える 5 2022/06/17 18:03
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Visual Basic(VBA) 先頭と末尾を指定して連続した数字を入力 1 2022/09/14 13:12
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
男って何歳になったらゲームす...
-
パズドラの別垢をつくりたいの...
-
「お話させていただく」か「お...
-
講演会の謝辞の仕方
-
「茶摘み」の手遊びについて
-
ゲーム用のパソコンが欲しく候...
-
たまにいる、なんでも知ってる...
-
凄いダジャレを教えて下さい。
-
ゲームをしたいのですがRyzen5 ...
-
ツムツムで鍵マークを出すには...
-
ゲーミングモニターについての...
-
人狼ゲームです。会議にて自分...
-
このパズドラの服はどこに売っ...
-
教師にスマホを没収されました...
-
『寛える』の読みについて教え...
-
配管の通っている場所での畑づ...
-
質問です。僕は学生なので親に...
-
CPUってAMDかIntelどっちが良い...
-
知らなきゃよかった怖い雑学を...
-
思わず笑ってしまう回文、教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「お話させていただく」か「お...
-
講演会の謝辞の仕方
-
パズドラの別垢をつくりたいの...
-
最近のゲームは電話番号での本...
-
彼氏の家に行きました。
-
なぞかけのアイデアをください...
-
悩んでいる人々も解脱が必要?
-
思わず笑ってしまう回文、教え...
-
ゲーミングモニターについての...
-
パソコンでゲームしていると、...
-
pc ブラウザゲームを探しています
-
リア友で対人ゲームを毎日やっ...
-
素敵なお話をたくさん聞かせて...
-
野球は好きだけど、プロ野球、...
-
ゲーミングPCを初めて購入した...
-
凄いダジャレを教えて下さい。
-
先日誕生日を迎えました。19歳...
-
ゲームをしたいのですがRyzen5 ...
-
ゲーミングPCでするゲーム
-
たまにいる、なんでも知ってる...
おすすめ情報
親身なご対応に本当に感謝の気持ちしかありません。
[shift][tab]...字下げの意味も分からず言うとおりにやってみたところ、感動しました。
気持ちよかったです 笑
そこで、このパターンだとどう変更すればよろしいでしょうか?
ちなみに、A列に関しては19行目が見出しになります。
最大で55行目までありますが、すべての行が埋まった事はありません。
沢山入力ができるように余裕をもって55行目まで枠を作っています。
また欠品店リストは必ず90行目が見出しになります。
型番はE91から入力されます。
型番については、実は非常に多いです。
品切れ店舗と、実は商品名もパソコンはパソコンでも複数の品番があるので、
それこそ300行目まで利用する事を想定しています。
最初の質問と違う!と怒られても仕方がないのですが、、
まさかこのような回答を頂けるとは夢にも思わなかったのでご寛容ください><